嘿,我正在编写一个简单的国际象棋机器人视觉系统,我正在尝试改进以前的研究,允许使用摄像头和标准棋盘,并允许在比赛期间两者都移动。到目前为止,我可以通过网络摄像头获取图像并定位棋盘,我想通过取两个连续图像的差异来检测动作,以确定发生了什么变化,然后使用有关棋盘占用的先前信息来检测动作。
我的问题是,我目前似乎无法可靠地检测变化,我的当前流程如下: 减去两个图像->直方图均衡化差异图像->侵蚀和扩张差异图像以消除较小的变化->制作二进制副本并进行距离变换->获取最大的斑点(对应于DT之后的最高值,并填充该斑点)->再次重复,直到DT返回足够小的值以忽略更改。
我正在使用OpenCV和C ++编写所有这些内容,但我的泛洪似乎总是不填充斑点,因此大多数情况下我只检测到一个变化。我还尝试使用
我的问题是,我目前似乎无法可靠地检测变化,我的当前流程如下: 减去两个图像->直方图均衡化差异图像->侵蚀和扩张差异图像以消除较小的变化->制作二进制副本并进行距离变换->获取最大的斑点(对应于DT之后的最高值,并填充该斑点)->再次重复,直到DT返回足够小的值以忽略更改。
我正在使用OpenCV和C ++编写所有这些内容,但我的泛洪似乎总是不填充斑点,因此大多数情况下我只检测到一个变化。我还尝试使用
cv :: inpaint ,但也没有帮助。所以我的问题是;我是否只是使用了错误的方法或者某种方式可以使变化检测更可靠。如果是前者,人们可以建议替代路线,最好可以在合理的时间内用C ++ / Python和/或OpenCV编码?
谢谢