opencv 히스토그램 비교

머리말

이미지 히스토그램은 에 자세히 설명되어 있으며 이미지 히스토그램 비교는 두 이미지의 유사도를 측정하는 수단입니다. 두 히스토그램(H1 및 H2)을 비교하려면 먼저 두 히스토그램이 얼마나 잘 일치하는지 나타내는 메트릭(d(H1,H2))을 선택해야 합니다. OpenCV는 일치를 계산하기 위해 4가지 다른 메트릭을 제공합니다.
상관 관계(HISTCMP_CORREL):
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
N은 N은 히스토그램 빈의 총 수입니다.

카이-제곱( HISTCMP_CHISQR)
여기에 이미지 설명 삽입
교차( method=HISTCMP_INTERSECT)
여기에 이미지 설명 삽입
Bhattacharyya 거리( HISTCMP_BHATTACHARYYA)
여기에 이미지 설명 삽입

opencv 기능 지원

함수 프로토타입:

CV_EXPORTS_W double compareHist( InputArray H1, InputArray H2, int method );

매개변수 설명:
H1: 히스토그램을 비교하는 첫 번째 항목입니다.
H2: 두 번째는 H1과 같은 크기의 히스토그램을 원합니다.
method : 비교 방법, #HistCompMethods 참조, Correlation 및 Intersection 방법은 메트릭이 높을수록 일치가 더 정확합니다. Square와 Bhattacharyya 거리는 반대입니다.

코드 예:

    cv::Mat image = cv::imread("D:\\QtProject\\Opencv_Example\\Hist\\Hist.png", cv::IMREAD_GRAYSCALE);
    if (image.empty()) {
    
    
      cout << "Cannot load image" << endl;
      return;
    }
    imshow("image",image);

    const int bins[1] = {
    
     256 };
    float hranges[2] = {
    
     0,255 };
    const float* ranges[1] = {
    
     hranges };

    Mat hist;
    // 计算直方图
    calcHist(&image, 1, 0, Mat(), hist, 1, bins, ranges);
    normalize(hist, hist, 0, 1, NORM_MINMAX, -1, Mat()); //将数据规皈依到0和1之间

    cv::Mat imageCvert;
    image.convertTo(imageCvert, -1, 1, 50);
    imshow( "imageCvert", imageCvert);
    Mat histCompare;
    calcHist(&imageCvert, 1, 0, Mat(), histCompare, 1, bins, ranges);
    normalize(histCompare, histCompare, 0, 1, NORM_MINMAX, -1, Mat()); //将数据规皈依到0和1之间


   double CORREL = compareHist( hist, histCompare, HISTCMP_CORREL );
   double CHISQR = compareHist( hist, histCompare, HISTCMP_CHISQR );
   double INTERSECT = compareHist( hist, histCompare, HISTCMP_INTERSECT );
   double BHATTACHARYYA = compareHist( hist, histCompare, HISTCMP_BHATTACHARYYA );
   cout << "HISTCMP_CORREL:" << CORREL<<endl
        <<  "HISTCMP_CHISQR:"  << CHISQR << endl
        << "HISTCMP_INTERSECT:" << INTERSECT << endl
        << "HISTCMP_BHATTACHARYYA:" << BHATTACHARYYA << endl;

두 이미지 비교:
여기에 이미지 설명 삽입
실행 결과:
여기에 이미지 설명 삽입

추천

출처blog.csdn.net/weixin_44901043/article/details/123497295