Rumah > Soal Jawab > teks badan
找茬那种游戏,两张一样的图,其中一张多了些东西。
想做个检测工具,识别两张图的不同之处,有什么算法思路?
伊谢尔伦2017-04-17 13:43:39
首先将两张图的顶点对齐,然后对像素做 diff 得到一个包含 RGB 差值新图,将这个新图做归一化,再用边缘检测算法把新图里面的图像轮廓勾出来,最后求出轮廓的包络,这个包络就是找不同里面需要点击的区域了。
阿神2017-04-17 13:43:39
最简单的办法。
假设两张图长宽一致,直接从左上角读像素,存成一个RGB二维数组。对比两个数组的不同之处,相同之处标为白色,反之标为黑色。以这个二维数组生成一张图,黑色部分就是有差异的部分了。
怪我咯2017-04-17 13:43:39
大学毕设做了类似的东西。实际上两张图直接相减会有很多噪点的,需要一些处理。降噪的手法有很多:模糊->二值化,剩下一些色块,用连通成分标记算法将这些块整合起来,然后处理出 bounding box 就可以输出给其它模块用了。
天蓬老师2017-04-17 13:43:39
把图按RGB亮度值作差,然后将得到的差值图像转成灰度图,再通过腐蚀和膨胀算法将不同点放大。如果有了解过OpenCV的话这东西几个函数就能搞定。