Python OpenCV超详细讲解基本功能


Posted in Python onApril 02, 2022

准备工作

右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库。

Python OpenCV超详细讲解基本功能

转成灰度图像

  • 调用imread()方法获取我们资源文件夹中的图片lena.png
  • cvtColor()方法可以让我们的图片转换成任意颜色,第一个参数是我们要转换的图片,第二个参数是要转成的颜色空间,cv2.COLOR_BGR2GRAY就是由BGR变为GRAY,我们日常生活中都是RGB三通道顺序,而在OpenCV中是BGR顺序。
  • 使用imshow()方法显示图片,窗口名称为Gray Image
  • waitKey(0)这句可以让窗口一直保持,如果去掉这句,窗口会一闪而过
img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Image",imgGray)
cv2.waitKey(0)

我们来看下效果:

Python OpenCV超详细讲解基本功能

高斯模糊

  • GaussianBlur()是对图片进行高斯模糊(也称为高斯平滑),是去除图像噪声的一种方法。
  • 第一个参数是图像,第二个参数(7,7)是卷积核的大小,只能是奇数长度的矩阵,第三个参数是Sigma X,默认为0
  • imshow()显示原图和灰度图
img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.waitKey(0)

我们来看下效果,左为原图,右是高斯模糊:

Python OpenCV超详细讲解基本功能

边缘检测

边缘检测Canny()方法中第一个参数是图像,第二个参数是阈值1,第三个参数是阈值2,用来显示灰度值在此范围内的边缘线。

img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
imgCanny=cv2.Canny(img,150,200)

cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.imshow("Canny Image",imgCanny)
cv2.waitKey(0)

我们运行看下效果:

Python OpenCV超详细讲解基本功能

膨胀运算

膨胀运算中,会用到numpy库,我们先导入一下:import numpy as np定义一下大小为5x5的卷积核:kernel=np.ones((5,5),np.uint8),数值类型是无符号整型

kernel=np.ones((5,5),np.uint8)
img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
imgCanny=cv2.Canny(img,150,200)
imgDialation=cv2.dilate(imgCanny,kernel,iterations=1)

cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.imshow("Canny Image",imgCanny)
cv2.imshow("Dialation Image",imgDialation)
cv2.waitKey(0)

我们看下效果,膨胀使得边缘线变得更厚,全部连接到一块。

Python OpenCV超详细讲解基本功能

腐蚀运算

我们对刚刚膨胀的图像进行腐蚀运算,就可以得到闭合的边缘图像。

kernel=np.ones((5,5),np.uint8)
img=cv2.imread("Resources/lena.png")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur=cv2.GaussianBlur(imgGray,(7,7),0)
imgCanny=cv2.Canny(img,150,200)
imgDialation=cv2.dilate(imgCanny,kernel,iterations=1)

cv2.imshow("Gray Image",imgGray)
cv2.imshow("Blur Image",imgBlur)
cv2.imshow("Canny Image",imgCanny)
cv2.imshow("Dialation Image",imgDialation)
cv2.waitKey(0)

从左到右依次为膨胀图像、腐蚀图像、边缘检测图像

Python OpenCV超详细讲解基本功能

OK,本节内容也是非常简单的,主要是让大家熟悉下OpenCV最基础的应用。眼过千遍不如手过一遍,快去动手敲一遍吧~?

到此这篇关于Python OpenCV超详细讲解基本功能的文章就介绍到这了,更多相关Python OpenCV 基本功能内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现数值积分的Simpson方法实例分析
Jun 05 Python
Python 内置函数complex详解
Oct 23 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
python多线程同步之文件读写控制
Feb 25 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
python中线程和进程有何区别
Jun 17 Python
python中print格式化输出的问题
Apr 16 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
Python标准库pathlib操作目录和文件
Nov 20 Python
python函数的两种嵌套方法使用
Apr 02 #Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Python实现提取PDF简历信息并存入Excel
Apr 02 #Python
python对文档中元素删除,替换操作
Apr 02 #Python
Python中第三方库Faker的使用详解
Python数据处理的三个实用技巧分享
Python+Tkinter打造签名设计工具
You might like
PHP 魔术函数使用说明
2010/05/14 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
python能做哪方面的工作
2020/06/15 Python
酒店服务实习自我鉴定
2013/09/22 职场文书
读书心得体会
2013/12/28 职场文书
渡河少年教学反思
2014/02/12 职场文书
财务人员岗位职责
2015/02/03 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
给下属加薪申请报告
2015/05/15 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
入党培养人考察意见
2015/06/08 职场文书
SQL CASE 表达式的具体使用
2022/03/21 SQL Server