존 캐니(John F. Canny)가 개발한 알고리즘으로, 이미지에서 에지를 검출하는 매우 효과적인 방법 중 하나.
일반 모서리만 필요한 고해상도 이미지의 경우 캐니 알고리즘을 적용하기 전에 자신의 블러(스무딩) 부터 적용하는것이 좋다.
캐니 알고리즘에서는 사용자가 높은 , 낮은 임계값을 정해야함
방정식을 이용하면 알수있지만, 직접 매뉴얼하게 하는경우도 있다.
방정식
- lower bound : 이미지의 중간값의 70%
- upper bound : 이미지의 중간값의 130%
노이즈 감소(Noisy Reduction):
cv2.GaussianBlur 함수를 사용합니다.그레이디언트 계산(Gradient Calculation):
비최대 억제(Non-Maximum Suppression):
이중 임곗값(Double Thresholding):
에지 추적과 이음선 연결(Edge Tracking by Hysteresis):
# Syntex
# Example
image: 입력 이미지, 그레이스케일이어야 합니다.threshold1: 하단 임곗값(lower threshold)입니다.threshold2: 상단 임곗값(upper threshold)입니다.apertureSize: Sobel 연산에 사용되는 커널 크기, 기본값은 3입니다.L2gradient: 그레이디언트의 크기를 계산할 때 | 원본 | 블러링 X | 블러링 O | 블러링 O + 임계값 수동 조정 |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
❗ 엣지 검출은 블러링과 임계값 조정를 활용해 최대한의 결과물을 만들어 내야한다.