Edge Detection

김영헌·2021년 10월 9일
0

Computer Vision

목록 보기
3/5

Edge 개념

Edge pixels - 갑작스럽게 intensity가 변하는 pixel
Edges - Edge pixel들끼리 연결된 집합

그림 Row를 하나 뽑아서 pixel intensity그래프를 그린 것이다. 갑작스럽게 그래프가 꺽이는 구간들이 edge piexel들이다.

Edge Detection

Sobel Operators

  • Kernel이라는 것을 사용하여 x축과 y축의 edge구간들을 구한다.
  • 그 후 피타고라스의 정의로 arctan(y/x)를 진행하여 magnitude를 구한다.

위에 예시는 x축 커넬을 사용한 예시이다. 커넬이 저렇게 같은 색으로 칠해진 부분끼리 곱한 후 다 더하게 되면 0이나오면 edge가 아니고 차이가 많이나면 edge인 것이다.
참고로 이미지에 그냥 바로 Sobel Operator를 쓸 경우 noise들이 너무 많기 때문에 smoothing하게 해주는 작업이 필요하다. 그 작업으로는 gaussian blur가 대표적으로 자주 쓰인다.

Canny Edge Detector

  • Gaussian 필터를 통해 이미지 내부에 noise를 줄인다.
  • Sobel Edge operator 적용시켜서서 gradient magnitude구한다.
  • magnitude비교하여 약하고 희미한 edge들은 없앤다.
  • Double thresholding을 통해 남은 edge들을 연결시킨다.

Magnitude 비교하여 희미한 edge들 없애는 원리(위사진)
빨간색으로 그려진 것이 그림 sobel operator를 쓴 후 남은 edge라고 가정한다면 그 edge라인을 기준으로 주변 magnitude랑 비교하고 가장 강한 magnitude만을 남기고 주변 애들은 모두 0으로 만든다.
이런 작업을 계속하게 되면 저절로 edge들이 더 얇아지고 명확해진다.


남은 edge들을 연결 시켜주는 원리(위사진)
upper와 lower threshold구간을 정하고 그 구간에 포함된 edge들은 모두 연결시킨다. 그런데 여기서 중요한 점이 그 구간에 포함이 안되지만 구간에 포함되는 것과 연결이 되어있을 경우 연결되어 있는 edge로 취급하고 함께 연결시킨다.

profile
대기업 회장님

0개의 댓글