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+django+sql学生信息管理后台开发
Jan 11 Python
Python模块WSGI使用详解
Feb 02 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
django富文本编辑器的实现示例
Apr 10 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Python接口测试数据库封装实现原理
May 09 Python
python ETL工具 pyetl
Jun 07 Python
pytorch 常用函数 max ,eq说明
Jun 28 Python
Django中F函数的使用示例代码详解
Jul 06 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实现网页端验证码功能
2017/07/11 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
javascript 特殊字符串
2009/02/25 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python创建子类的方法分析
2019/11/28 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
Order by的几种用法
2013/06/16 面试题
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
党员志愿者活动方案
2014/08/28 职场文书
工程部部长岗位职责
2015/02/12 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python
Go语言基础函数基本用法及示例详解
2021/11/17 Golang