2014-04-18 35 views
2

我必须比较OpenCV中的两个图像,它们都是黑色和白色,并且有白色边缘,我想通过比较这两个图像来得到某种百分比结果。我该怎么办?比较OpenCV中两个图像的特征vC++

enter image description here

第一图象和

enter image description here

第二图像

可有人就如何执行此操作的建议?

+1

提取匹配方面的问题是非常主观的。你对比较结果的定义是什么?例如,如何量化图像彼此相似度为30%?您是否要计算在相同位置完全相同的像素数量,或者想要使用其他一些度量方法进行比较? – Alexey

+0

你能提供一个你的输入和输出的例子吗? – Hadi

+0

清楚地了解您想要精确计算的内容可能会有所帮助。 – Alexey

回答

0

对于简单的黑白图像,你可以尝试compare

cv::Mat img1 = ... 
cv::Mat img2 = ... 
cv::Mat result = ... 

cv::compare(img1 , img2 , result , cv::CMP_EQ); 
int percentage = countNonZero(result); 

但是,对于更高级的比较,也有不同的方法,如用matchTemplate

+0

我试过cv :: compare,但结果不令人满意。 MatchTemplate更好。特别是对于大图像。谢谢 – elroyalva