我想检测图像中缺失的物体。情况如下:
- 你有一张房间的图片,房间里有一个球。
- 你有另一张相同房间的图片(光照条件相似),唯一的区别是球不见了。
- 现在我需要使用OpenCV来比较这两张图片,并找出缺失的物体。
我知道做的第一步是计算两张图片的直方图并进行比较。如果第二张图片中缺少了某些东西,那么直方图的值就会有所不同。
现在,如何检测到“球”不见了呢?使用模板匹配吗?
回答:
正如评论中所述,你可以轻松地对这两张图片进行减法运算。我记得Mat类重载了减号[-]运算符。因此,sub = img1 - img2;
只要imgs是cv::Mat
对象,就应该足够了。
关于 blobs,请查看OpenCV网站上的以下教程:
http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html
http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/hull/hull.html