OpenCV 학습 노트 - 자가 적응 한도 값 화

자가 적응 한도 값 화 함수:
AdaptiveThreshold
자가 적응 한도 값 방법
void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value,
                          int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,
                          int threshold_type=CV_THRESH_BINARY,
                          int block_size=3, double param1=5 );

src
그림 을 입력 하 십시오.
dst
그림 을 출력 합 니 다.
max_value
CV 사용THRESH_BINARY 와 CVTHRESH_BINARY_INV 의 최대 치.
adaptive_method
자가 적응 한도 값 알고리즘 사용: CVADAPTIVE_THRESH_MEAN_C 또는 CVADAPTIVE_THRESH_GAUSSIAN_C (토론 참조).
threshold_type
한도 값 유형: 하위 중 하나 여야 합 니 다.
  • CV_THRESH_BINARY,
  • CV_THRESH_BINARY_INV

  • block_size
    한도 값 을 계산 하 는 픽 셀 인접 도 메 인 크기: 3, 5, 7...
    param1
    방법 과 관련 된 매개 변수.방법 CVADAPTIVE_THRESH_MEAN_C 와 CVADAPTIVE_THRESH_GAUSSIAN_C. 이것 은 평균 값 이나 가중 평균 값 에서 추출 한 상수 입 니 다. 비록 마이너스 일 수 있 지만.
    함수 cvAdaptive Threshold 는 그 레이스 케 일 이미 지 를 2 값 이미지 로 변환 하고 다음 공식 을 사용 합 니 다.
    threshold_type=CV_THRESH_BINARY:
    dst(x,y) = max_value, if src(x,y)>T(x,y)
               0, otherwise
    
    threshold_type=CV_THRESH_BINARY_INV:
    dst(x,y) = 0, if src(x,y)>T(x,y)
               max_value, otherwise
    

    그 중에서 TI 는 모든 픽 셀 점 을 위해 단독으로 계산 하 는 한도 값 이다.
    방법 CVADAPTIVE_THRESH_MEAN_C. 먼저 블록 중의 평균 값 을 구하 고 param 1 을 빼 세 요.
    방법 CVADAPTIVE_THRESH_GAUSSIAN_C. 먼저 블록 중의 가중 과 (gaussian) 를 구하 고 param 1 을 빼 세 요.
    ================================================================================================================
    아래 의 예 제 는 한도 값 화 와 자가 적응 한도 값 화 를 비교 했다.
    #include "StdAfx.h"
    #include   
    #include   
    #include   
    IplImage* Igray = 0;  
    IplImage* It = 0;  
    IplImage* Iat;  
    void main()  
    {  
        Igray = cvLoadImage("lena.png", CV_LOAD_IMAGE_GRAYSCALE);  
        It = cvCreateImage(cvSize(Igray->width, Igray->height),IPL_DEPTH_8U, 1);  
        Iat = cvCreateImage(cvSize(Igray->width, Igray->height),IPL_DEPTH_8U, 1);  
        cvThreshold(Igray, It, 150, 255,CV_THRESH_BINARY);  
        cvAdaptiveThreshold(Igray, Iat, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 3, 5);  
        cvNamedWindow("orignal", 1);  
        cvNamedWindow("threshold", 1);  
        cvNamedWindow("adaptiveThresh", 1);  
        cvShowImage("orignal", Igray);  
        cvShowImage("threshold", It);  
        cvShowImage("adaptiveThresh", Iat);  
        cvWaitKey(0);  
        cvReleaseImage(&Igray);  
        cvReleaseImage(&It);  
        cvReleaseImage(&Iat);  
        cvDestroyWindow("orignal");  
        cvDestroyWindow("threshold");  
        cvDestroyWindow("adaptiveThresh");  
      
    }  

    연산 결 과 는:
    참고 문헌:
    1. OpenCV 학습, 우기, 유서 정, 청화대학 출판사, pp. 159 - 161
    2.http://blog.csdn.net/cartoonface/article/details/6011334
    3.http://www.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86#AdaptiveThreshold

    좋은 웹페이지 즐겨찾기