嗨,我编码了一个简单的下棋机器人的视觉系统,我想改善以前的一些研究,以使相机和一个标准的国际象棋使用,都被允许在游戏中移动.到目前为止,我可以在通过网络摄像头获取的图像中找到电路板,我想通过获取连续图像的差异来检测移动,以确定已更改的内容,然后使用有关电路板占用率的先前信息来检测移动.
我的问题是我现在似乎无法可靠地检测到变化,我目前的管道是这样的:减去两个图像 - >直方图均衡差异图像 - >侵蚀和扩张差异图像以消除微小变化 - >制作二进制复制并执行距离变换 - >获取最大的blob(对应于DT后的最高值并填充该blob) - >再次重复,直到DT返回足够小的值以忽略更改.
我在OpenCV和C++中编写所有这些代码.但我的洪水填充似乎总是要么不填充blob,因此大多数情况下我只是检测到一个变化.我也试过使用,cv::inpaint
但也没有帮助.所以我的问题是; 我只是使用错误的方法或以某种方式图灵可以使变化检测更可靠.对于前者,人们是否可以在合理的时间内建议替代路线,最好是C++/Python和/或OpenCV中的可编码路径?
谢谢