Prewitt 운영자

Prewitt 연산자는 이미지의 가장자리 감지에 사용됩니다. 두 가지 유형의 모서리를 감지합니다.

  • 수평 가장자리
  • 수직 가장자리

이미지의 해당 픽셀 강도 차이를 사용하여 가장자리를 계산합니다. 가장자리 감지에 사용되는 모든 마스크를 파생 마스크라고도합니다. 이 튜토리얼 시리즈에서 이전에 여러 번 언급했듯이 이미지도 신호이므로 신호의 변화는 미분을 사용해서 만 계산할 수 있기 때문입니다. 그래서 이러한 연산자를 파생 연산자 또는 파생 마스크라고도합니다.

모든 파생 마스크에는 다음 속성이 있어야합니다.

  • 마스크에 반대 기호가 있어야합니다.
  • 마스크의 합은 0과 같아야합니다.
  • 더 많은 무게는 더 많은 가장자리 감지를 의미합니다.

Prewitt 연산자는 수평 방향의 가장자리를 감지하는 마스크와 수직 방향의 가장자리를 감지하는 마스크를 제공합니다.

수직 방향

-1 0 1
-1 0 1
-1 0 1

위의 마스크는 세로 방향의 가장자리를 찾고 세로 방향의 0 열이기 때문입니다. 이 마스크를 이미지에 컨볼 루션하면 이미지의 수직 가장자리가 제공됩니다.

작동 원리

이 마스크를 이미지에 적용하면 수직 가장자리가 두드러집니다. 1 차 도함수처럼 작동하며 가장자리 영역에서 픽셀 강도의 차이를 계산합니다. 가운데 열이 0이므로 이미지의 원래 값을 포함하지 않고 해당 가장자리 주변의 오른쪽 및 왼쪽 픽셀 값의 차이를 계산합니다. 이것은 가장자리 강도를 증가시키고 원본 이미지에 비해 상대적으로 향상됩니다.

수평 방향

-1 -1 -1
0 0 0
1 1 1

위의 마스크는 가로 방향의 가장자리를 찾고 0 열이 가로 방향이기 때문입니다. 이 마스크를 이미지에 컨볼 루션하면 이미지에서 가로 가장자리가 두드러집니다.

작동 원리

이 마스크는 이미지의 수평 가장자리를 두드러지게합니다. 또한 위 마스크의 원리에 따라 작동하며 특정 가장자리의 픽셀 강도 간의 차이를 계산합니다. 마스크의 중앙 행은 0으로 구성되어 있으므로 이미지에있는 가장자리의 원래 값을 포함하지 않고 특정 가장자리의 위와 아래 픽셀 강도의 차이를 계산합니다. 따라서 강도의 갑작스런 변화를 증가시키고 가장자리를 더 잘 보이게 만듭니다. 위의 두 마스크는 모두 파생 마스크의 원리를 따릅니다. 두 마스크 모두 반대 부호가 있고 두 마스크 합계가 0입니다. 세 번째 조건은 위의 두 마스크가 표준화되어 있고 값을 변경할 수 없기 때문에이 연산자에 적용되지 않습니다.

이제 이러한 마스크가 실제로 작동하는 것을 볼 시간입니다.

샘플 이미지

다음은 두 마스크 위에 한 번에 하나씩 적용 할 샘플 사진입니다.

수직 마스크 적용 후

위의 샘플 이미지에 세로 마스크를 적용하면 다음과 같은 이미지를 얻을 수 있습니다. 이 이미지에는 세로 가장자리가 포함되어 있습니다. 가로 가장자리 그림과 비교하면 더 정확하게 판단 할 수 있습니다.

수평 마스크 적용 후

위의 샘플 이미지에 가로 마스크를 적용하면 다음과 같은 이미지를 얻을 수 있습니다.

비교

보시다시피 수직 마스크를 적용한 첫 번째 그림에서 모든 수직 가장자리가 원본 이미지보다 더 잘 보입니다. 마찬가지로 두 번째 그림에서 수평 마스크를 적용했으며 결과적으로 모든 수평 가장자리가 표시됩니다. 따라서 이런 방식으로 이미지에서 수평 및 수직 가장자리를 모두 감지 할 수 있음을 알 수 있습니다.