>  Q&A  >  본문

python - 找两张图的不同点,破解算法应该怎么写?

找茬那种游戏,两张一样的图,其中一张多了些东西。
想做个检测工具,识别两张图的不同之处,有什么算法思路?

PHP中文网PHP中文网2712일 전507

모든 응답(7)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:43:39

    首先将两张图的顶点对齐,然后对像素做 diff 得到一个包含 RGB 差值新图,将这个新图做归一化,再用边缘检测算法把新图里面的图像轮廓勾出来,最后求出轮廓的包络,这个包络就是找不同里面需要点击的区域了。

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 13:43:39

    简单一点,按5个像素为一个单元切割大图,然后对比每个小图的二值~

    회신하다
    0
  • 阿神

    阿神2017-04-17 13:43:39

    最简单的办法。
    假设两张图长宽一致,直接从左上角读像素,存成一个RGB二维数组。对比两个数组的不同之处,相同之处标为白色,反之标为黑色。以这个二维数组生成一张图,黑色部分就是有差异的部分了。

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 13:43:39

    找茬的很好办,读取两张图片值,然后相减就行

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-17 13:43:39

    大学毕设做了类似的东西。实际上两张图直接相减会有很多噪点的,需要一些处理。降噪的手法有很多:模糊->二值化,剩下一些色块,用连通成分标记算法将这些块整合起来,然后处理出 bounding box 就可以输出给其它模块用了。

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:43:39

    把图按RGB亮度值作差,然后将得到的差值图像转成灰度图,再通过腐蚀和膨胀算法将不同点放大。如果有了解过OpenCV的话这东西几个函数就能搞定。

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-17 13:43:39

    研一数字图像处理的实验四。。。楼主是不是!

    회신하다
    0
  • 취소회신하다