CV2 学习
概述
cv2是计算机视觉处理中应用比较多的第三方库,里面还包含一些训练好的识别模型,比如人脸识别、人眼识别等模型,此次想实现一个图片差异判别的程序。下面的两张图存在一些不一样的地方,能看出来吗?(原谅我特丑的钥匙串) 图片1
图片2
代码
代码语言:javascript复制# 导入需要的包
import cv2 # pip install opencv-python
import numpy as np
from PIL import Image, ImageDraw, ImageFont # pip install pillow
# 导入第一个图片
first1 = cv2.imread(
r"D:360MoveDataUserscmusunqiDocumentsGitHubR_and_pythonpythonCV21.jpg"
)
# 彩色图片转换为灰度图片
first1 = cv2.cvtColor(first1, cv2.COLOR_BGR2GRAY)
# 高斯模糊,目的是去除一些噪点
first1 = cv2.GaussianBlur(first1, (21, 21), 1.5)
# 21,21 为高斯窗格,最后一个参数为模糊参数,越大模糊约严重
# 导入第二个图片
first2 = cv2.imread(
r"D:360MoveDataUserscmusunqiDocumentsGitHubR_and_pythonpythonCV22.jpg"
)
# 彩色图片转换为灰度图片
first2 = cv2.cvtColor(first2, cv2.COLOR_BGR2GRAY)
# 高斯模糊,目的是去除一些噪点
first2 = cv2.GaussianBlur(first2, (21, 21), 0.5)
# 21,21 为高斯窗格,最后一个参数为模糊参数,越大模糊约严重
# 对两张图片进行对比
chayi = cv2.absdiff(first2,first1)
# 再次进行高斯模糊
img = cv2.GaussianBlur(chayi,(21,21),0.5)
# # 边缘检测
canny = cv2.Canny(img, 40, 200)
# 将检测出的异常和原图进行叠加
canny_a = cv2.add(first1,canny)
# 保存识别图片
cv2.imwrite('pred.jpg',canny_a)
结果
因为,对图片进行了灰度转换,我这里又没有转换回去,所以图片看起来是灰色的,通过CV2的对比图片,可以看到钥匙链上的掏耳勺旁边有一个浅浅的印记,这里就是边缘识别出的差异,有点淡的可能是参数设置的问题。
结束语
love & peace