python苦短-CV2

时间:2022-07-25
本文章向大家介绍python苦短-CV2,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

CV2 学习

概述

cv2是计算机视觉处理中应用比较多的第三方库,里面还包含一些训练好的识别模型,比如人脸识别、人眼识别等模型,此次想实现一个图片差异判别的程序。下面的两张图存在一些不一样的地方,能看出来吗?(原谅我特丑的钥匙串) 图片1

图片2

代码

# 导入需要的包
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