问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

opencv函数compareHist是如何工作的呢

发布网友 发布时间:2022-05-01 19:46

我来回答

1个回答

热心网友 时间:2022-06-22 04:15

int main(int argc,char* argv[])
{
   Mat src1Image,src1HalfImage,src2Image,src3Image;
   Mat src1HsvImage,src1HalfHsvImage,src2HsvImage,src3HsvImage;
   
   src1Image = imread("F:\\opencv\\OpenCVImage\\compareHist01.jpg");
   src2Image = imread("F:\\opencv\\OpenCVImage\\compareHist02.jpg");
   src3Image = imread("F:\\opencv\\OpenCVImage\\compareHist03.jpg");
   src1HalfImage = Mat(src1Image, Range(src1Image.rows/2,src1Image.rows-1),Range(0,src1Image.cols-1));
   
   cvtColor(src1Image, src1HsvImage, CV_RGB2HSV);
   cvtColor(src2Image, src2HsvImage, CV_RGB2HSV);
   cvtColor(src3Image, src3HsvImage, CV_RGB2HSV);
   cvtColor(src1HalfImage, src1HalfHsvImage, CV_RGB2HSV);
   
   int hbins = 50,sbins = 60;
   int histSize[] = {hbins,sbins};
   int channels[] = {0,1};
   float hRange[] = {0,256};
   float sRange[] = {0,180};
   const float* ranges[] = {hRange,sRange};
   
   MatND src1Hist,src2Hist,src3Hist,srcHalfHist;
   
   calcHist(&src1HsvImage, 1, channels, Mat(), src1Hist, 2, histSize, ranges,true,false);
   normalize(src1Hist, src1Hist, 0,1, NORM_MINMAX,-1,Mat());
   
   calcHist(&src2HsvImage, 1, channels, Mat(), src2Hist, 2, histSize, ranges,true,false);
   normalize(src2Hist, src2Hist, 0,1, NORM_MINMAX,-1,Mat());
   
   calcHist(&src3HsvImage, 1, channels, Mat(), src3Hist, 2, histSize, ranges,true,false);
   normalize(src3Hist, src3Hist, 0,1, NORM_MINMAX,-1,Mat());
   
   calcHist(&src1HalfHsvImage, 1, channels, Mat(), srcHalfHist, 2, histSize, ranges,true,false);
   normalize(srcHalfHist, srcHalfHist, 0,1, NORM_MINMAX,-1,Mat());
   
   imshow("src1 image", src1Image);
   imshow("src2 image", src2Image);
   imshow("src3 image", src3Image);
   imshow("src1Half image", src1HalfImage);
   
   moveWindow("src1 image", 0, 0);
   moveWindow("src2 image", src1Image.cols, 0);
   moveWindow("src3 image", src2Image.cols+src1Image.cols, 0);
   moveWindow("src1 half image", src1Image.cols+src2Image.cols+src3Image.cols, 0);
   
   for (int i = 0; i < 4; i++) {
       int compareMethod = i;
       double compareResultA = compareHist(src1Hist, src1Hist, i);
       double compareResultB = compareHist(src1Hist, src2Hist, i);
       double compareResultC = compareHist(src1Hist, src3Hist, i);
       double compareResultD = compareHist(src1Hist, srcHalfHist, i);
       
       printf("直方图比对结果为\r compareResultA = %.3f  \ncompareResultB = %.3f  \ncompareResultC = %.3f  \ncompareResultD = %.3f  \n",compareResultA,compareResultB,compareResultC,compareResultD);
       printf("比对方法为 %d\n",compareMethod);
   }
   
   waitKey(0);
   return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国家对腾讯已经作出解除音乐版权处罚,为什么网易云还是很 市场监管总局依法对腾讯控股有限公司作出责令解除网络音乐 腾讯放弃音乐独家版权,绝大部分独家协议已按期解约 高级BEC和中级口译哪个难? 三级口译是什么样的水平 高级日语口译大概是什么水平 高级口译常用谚语 品牌型号怎么填写 送刀剑是什么风水 送礼送菜刀是什么意思 opencv中显示一幅图像后能否通过按键f实现翻转并显示翻转后图像waitkey()中能嵌套imshow? 你好 ,你的 opencv的 imshow ,imread三个函数的问题解决了吗,我也遇到了同样的问题 为什么opencv里imread()都出来的图片的像素值里有问号 imshow()也不能正常显示 c++ opencv 如何关闭imshow打开的窗口 opencv imshow 后为什么要加waitkey 没有与参数列表匹配的重载函数“imshow”实例 opencv实现彩色图像向灰度图像转换的函数是哪个? vs2012中包括进去opencv,imread,namedWindow,imshow使用这几个函数,显示未定义标示符 为什么vscode安装了Code Runner插件后opencv的imshow()函数被重载不能正常使用? 求opencv大神帮忙看一下这是什么情况 为什么我的imshow语句用不了了 opencv能够使用imshow函数显示出图片,却没办法用imwrite成功保存图片,代码运行成功 opencv如何获得 imshow函数的句柄? 多多买菜平台上购物时,多多钱包和绑定的银行卡都没钱,免密支付怎么也付款了? 请多多购物非常不喜欢卖家不承担运费我该怎么办? 拼多多购物缺少部件怎么办? 拚多多买东西拚价14.9为什么要收24.9? 帮他人在拚多多上购物他人手机显示购物信息吗 你好,我今天做四维显示左心室可见强回声点,我想问一下问题大吗 前列腺内有几枚强回声点,其中一大者约7mm,后伴声影.余腺内回声均匀,未见明显 什么是强回声 怎么才能让金鱼身上长黑点消除 金鱼身上出现了好多黑点,知道是咋回事吗? 金鱼身上出现黑点怎么办 世界上哪具国家的国旗图案最复杂? 金鱼长黑斑怎么回事啊? 世界各国国家国旗大全 世界国家国旗 为什么金鱼身上有黑点? 世界上各国国旗的名称 金鱼身上长黑点怎么办?尤其是鱼鳃黑点特别多 世界所有国家的国旗 我家的金鱼身上得了很多黑点,怎么办(高分) 为什么世界各国的国旗,从来都不用紫色 养的小金鱼身上有黑斑怎么办 世界各个国家国旗 金鱼身上长黑斑怎么治 世界各国国旗大全 世界各国国旗七大洲四大洋 世界主要国家的国旗 网络红人小薇的资料!