openCV: 캐니 에지 검출

김태성·2022년 4월 13일
0

Canny Edge Detection

Canny Edge Detection은 에지를 찾기위한 가장 인기있는 알고리즘 중 하나이다.
Canny Edge Detection은 여러 단계의 알고리즘으로 구성되어 있다.

  1. 노이즈 제거: 5x5 가우시안 필터를 이용해 이미지의 노이즈를 줄여준다.

  2. Gradient 높은 부분 찾기: Sobel 커널을 수평/수직방향으로 적용하여 각 방향의 gradient(Gx, Gy)를 획득한다. Gradient의 방향은 에지에 수직인 방향이다.

  3. 최대값이 아닌 픽셀의 값을 0으로 만든다.

    위 그림에서 A는 에지위에 있는 픽셀이고 B,C는 Gradient 방향에 놓인 픽셀이다. A지점에서 gradient 값이 B, C보다 큰지 아닌지 체크한다. A가 가장 크면 다음 단계로, 그렇지 않으면 0으로 만든다.

  4. Hyteresis Thresholding: 4단계는 3단계를 거친 것들이 실제 에지인지 아닌지 판단하는 단계이다.
    먼저 minVal, maxVal 2개의 값을 잡고, maxVal보다 높은 부분은 확실한 에지, minVal보다 낮은 부분은 에지가 확실히 아니다. 그 사이에 있는 값들은 minVal과 연결되어 있으면 에지, 아니면 에지가 아니라고 판단한다.

# 사용법
edge = cv2.Canny(img, minVal, maxVal)


(🔼좌: 원본, 우: edge)

profile
@flip_404

0개의 댓글