직사 도 비교 이미지 싱크로 율 계산
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace cv;
//
void CompImageHist(Mat &src, MatND &b_hist, MatND &g_hist, MatND &r_hist)
{
// 3 (bgr)
vector<Mat> rgb_planes;
split(src, rgb_planes);
// bin
int histSize = 255;
float range[] = { 0, 255 };
const float* histRange = { range };
//
bool uniform = true;
bool accumulate = false;
calcHist(&rgb_planes[0], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate);
calcHist(&rgb_planes[1], 1, 0, Mat(), g_hist, 1, &histSize, &histRange, uniform, accumulate);
calcHist(&rgb_planes[2], 1, 0, Mat(), r_hist, 1, &histSize, &histRange, uniform, accumulate);
// >> [0, 1]
normalize(r_hist, r_hist, 0, 1, NORM_MINMAX, -1/*, Mat()*/);
normalize(g_hist, g_hist, 0, 1, NORM_MINMAX, -1/*, Mat()*/);
normalize(b_hist, b_hist, 0, 1, NORM_MINMAX, -1/*, Mat()*/);
}
int main(int argc, _TCHAR* argv[])
{
Mat img0 = imread("image\\lena0.jpg");
imshow("img0", img0);
Mat img1 = imread("image\\lena1.jpg");
imshow("img1", img1);
MatND hist0[3], hist1[3];
//
CompImageHist(img0, hist0[0], hist0[1], hist0[2]);
CompImageHist(img1, hist1[0], hist1[1], hist1[2]);
double sum[4] = { 0.0 };
double results[4] = { 0.0 };
char channelName[][8] = { { " " }, { " " }, { " " } };
//
printf(" ...
");
for (int i = 0; i < 3; i++)
{
// : CV_COMP_CORREL, : CV_COMP_CHISQR, : CV_COMP_INTERSECT, : CV_COMP_BHATTACHARYYA
results[0] = compareHist(hist0[i], hist1[i], CV_COMP_CORREL);
results[1] = compareHist(hist0[i], hist1[i], CV_COMP_CHISQR);
results[2] = compareHist(hist0[i], hist1[i], CV_COMP_INTERSECT);
results[3] = compareHist(hist0[i], hist1[i], CV_COMP_BHATTACHARYYA);
sum[0] += results[0];
sum[1] += results[1];
sum[2] += results[2];
sum[3] += results[3];
printf("%s--> : %f, : %f, : %f, : %f
", channelName[i], results[0], results[1], results[2], results[3]);
}
printf("
--> : %f, : %f, : %f, : %f
", sum[0]/3, sum[1]/3, sum[2]/3, sum[3]/3);
waitKey();
return 0;
}
운행 결과:프로젝트 다운로드 링크:http://download.csdn.net/detail/u013085897/6774645
프로그램 은 vs 2005 + opencv 210 을 기반 으로 프로젝트 를 다운로드 한 후 자신 이 사용 하 는 opencv 버 전과 일치 하지 않 으 면 프로젝트 를 간단하게 설정 해 야 정확하게 실 행 될 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.