ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Local (Adaptive) Thresholding 코드 구현
    컴공지식/컴퓨터비전 2024. 10. 2. 22:56

    이건 이미지의 각 부분마다 주변 픽셀들의 밝기를 기준으로 다른 임계값을 적용하는 방법이다.

    이미지가 조명에 따라 밝기가 달라질 때, 전역 임계값(global thresholding)보다 훨씬 좋은 결과를 줄 수 있다.

     

    int main() {
        Mat image, binary, adaptive_binary; // 입력 이미지와 결과 이미지를 위한 변수들
        image = imread("opencv.jpg", 0); // 이미지를 그레이스케일로 불러옴

        threshold(image, binary, 150, 255, THRESH_BINARY); // 전역 임계값으로 이진화
        adaptiveThreshold(image, adaptive_binary, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 85, 15); // 적응형 임계값 적용
        
        imshow("Input image", image); // 원본 이미지 표시
        imshow("binary", binary); // 전역 이진화 결과 이미지 표시
        imshow("adaptive binary", adaptive_binary); // 적응형 임계값 결과 이미지 표시
        
        waitKey(0); // 키 입력 대기
    }

     

    여기선 주변 85x85 크기의 블록 안에서 픽셀 값의 평균을 계산하고, 그 값에서 15를 뺀 값을 임계값으로 사용한다.

     

    '컴공지식 > 컴퓨터비전' 카테고리의 다른 글

    배경 차감(Background Subtraction)  (1) 2024.10.06
    GrabCut 함수  (0) 2024.10.02
    Global Thresholding 구현 코드  (1) 2024.10.02
    inRange 함수  (0) 2024.10.02
    adaptiveThreshold 함수 코드  (0) 2024.10.02
Designed by Tistory.