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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 初学Vue.js,用 vue ui 创建项目会不会被鄙视
- 十三、jQuery过时的今天,你还会使用它吗
- 0005 Java 包扫描实现和应用(Jar篇)
- python基础 -- acm
- 十四、深入核心,详解事件循环机制
- python基本 -- threading多线程模块的使用
- python基本 -- mysql 的使用
- python爬虫----(6. scrapy框架,抓取亚马逊数据)
- 十五、这一次,彻底弄懂Promise的使用
- python爬虫----(5. scrapy框架,综合应用及其他)
- 十六、半小时掌握ES6常用知识,覆盖80%实践场景
- python爬虫----(4. scrapy框架,官方文档以及例子)
- python爬虫----(3. scrapy框架,简单应用)
- python爬虫----(2. scrapy框架)
- python爬虫----(1. 基本模块)