컴공지식/컴퓨터비전

Canny 엣지 검출기 구현

개강한 공대생 2024. 9. 25. 23:32

int main() {
    Mat image, canny;
    image = imread("lena.png", 0);  // 이미지를 흑백으로 불러옴

    // Canny 엣지 검출 수행
    // image: 입력 이미지, canny: 출력 이미지
    // 190: 낮은 임계값 (low threshold)
    // 200: 높은 임계값 (high threshold)
    // 3: Sobel 연산에 사용할 커널 크기
    Canny(image, canny, 190, 200, 3);

    // 결과 출력
    imshow("Input image", image);
    imshow("canny", canny);

    waitKey(0);  // 키 입력 대기
}

 

여기서 주의깊게 볼 점은 Canny 함수인데, 이 함수는 Canny 엣지 검출기를 사용해서 엣지를 감지한다.

그리고 두 임계값을 이용하여 더블 쓰레숄딩(double thresholding)을 수행한다.

엣지가 될 가능성이 높은 부분을 연결하고, 그 외의 노이즈 같은 작은 부분은 무시하는거다.