前言
找不同小游戏,大家或多或少都玩儿过,就是给你两幅相似的图片,里面会给你改变一些东西的形状,或者挪动位置,让你在规定时间内,找出两幅图的不同之处。可有时候图片信息过多或者太复杂,就会使我们找起来非常费劲儿。那有没有偷懒的方法呢?
哈喽,小伙伴们好,这里是滑稽研究所。以上的问题能不能用python实现一键找不同呢?很显然除了生孩子外什么都会的python是可以做到的,只需要使用我们的opencv库,就可以实现我们想要的功能的。那么本期我们的任务就是识别下面图片素材中的不同之处,并标记出来。下图中除了比较明显的app的位置变化之外,4g信号的使用情况也不同(箭头一明一暗)。
素材如下:
![](https://i-blog.csdnimg.cn/blog_migrate/87c52cf416cee2e3e5ffd8bb7776024f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d33889fa2964a639fe6b5dc2985aaa12.png)
**注意!**两个图片比较的先决条件必须处于同一环境,如我们截取定点监控摄像头的录像,在不同时间任意截取两张图片比较都是满足条件的。因为它拍摄的是同一地点,变化的只有行人和车辆。我们的素材也是在同一屏幕,不同情况下截取。
那么先上代码,然后我们跟着不同阶段的图片处理结果来过一遍思路。
源代码:
import cv2
import numpy as np
img = cv2.imread('images/3.png',0)
imgx = cv2.imread('images/3.png')
img2 = cv2.imread('images/4.png',0)
imgy = cv2.imread('images/4.png')
#缩放到合适大小
img=cv2.resize(img,None,fx=0.4,fy=0.4)
imgx=cv2.resize(imgx,None,fx=0.4,fy=0.4)
img2=cv2.resize(img2,None,fx=0.4,fy=0.4)
imgy=cv2.resize