opencv:使用absdiff进行图片对比

在天涯、 2019-04-05 11:53:18
使用java比对图片相似度,在网上看到的代码如下:
public static int getnum(Mat number){
int num=0;
int min=30000;

Mat model=new Mat();
Mat mid=new Mat();
Mat res=new Mat();

for(int i=3;i<=4;i++){
String str="C:/"+i+".png";
model=Imgcodecs.imread(str);
Imgproc.cvtColor(model, mid, Imgproc.COLOR_BGR2GRAY);
Imgproc.threshold(mid, mid, 250, 255, 0); //二值化
Core.absdiff(number, mid, res); //两个矩阵的差的绝对值
int now=getsum(res);
if(now<min){
min=now;
num=i;
}
}
/* if(num==10)
num=1;*/

return num;
}
问题在于Core.absdiff(number, mid, res);这行代码返回的是什么 以及下面的 int now=getsum(res);是什么意思 很明显问题在getsum方法,但博主并未贴出getsum方法内容
...全文
2003 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39239174 2019-11-20
  • 打赏
  • 举报
回复
返回的res是两个图片像素相减之后的图片,getsum应该是返回res像素的总和,以此来对比图片,两个图片相减之后的像素差越小,图片越相似 Mat sub; absdiff(im2, m, sub); //imshow("33",sub); //threshold(sub,sub,100,255,CV_THRESH_BINARY); int sum = 0,suu = 0; for (int i = 0; i < sub.cols; i++) { for (int j = 0; j < sub.rows; j++) { sum += sub.at<uchar>(i,j); } } 可以参考一下
jsxyhelu2015 2019-04-09
  • 打赏
  • 举报
回复
你这个问博主呀。

4,242

社区成员

发帖
与我相关
我的任务
社区描述
OpenCV相关技术交流专区
计算机视觉人工智能opencv 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • OpenCV
  • 幻灰龙
  • OpenCV中国团队
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

OpenCV中国团队官方博客:https://blog.csdn.net/opencvchina

试试用AI创作助手写篇文章吧