2
我必须比较OpenCV中的两个图像,它们都是黑色和白色,并且有白色边缘,我想通过比较这两个图像来得到某种百分比结果。我该怎么办?比较OpenCV中两个图像的特征vC++
第一图象和
第二图像
可有人就如何执行此操作的建议?
我必须比较OpenCV中的两个图像,它们都是黑色和白色,并且有白色边缘,我想通过比较这两个图像来得到某种百分比结果。我该怎么办?比较OpenCV中两个图像的特征vC++
第一图象和
第二图像
可有人就如何执行此操作的建议?
对于简单的黑白图像,你可以尝试compare:
cv::Mat img1 = ...
cv::Mat img2 = ...
cv::Mat result = ...
cv::compare(img1 , img2 , result , cv::CMP_EQ);
int percentage = countNonZero(result);
但是,对于更高级的比较,也有不同的方法,如用matchTemplate
我试过cv :: compare,但结果不令人满意。 MatchTemplate更好。特别是对于大图像。谢谢 – elroyalva
提取匹配方面的问题是非常主观的。你对比较结果的定义是什么?例如,如何量化图像彼此相似度为30%?您是否要计算在相同位置完全相同的像素数量,或者想要使用其他一些度量方法进行比较? – Alexey
你能提供一个你的输入和输出的例子吗? – Hadi
清楚地了解您想要精确计算的内容可能会有所帮助。 – Alexey