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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
go语言计算两个时间的时间差方法
Mar 13 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
基于python log取对数详解
Jun 08 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
如何利用python给图片添加半透明水印
Sep 06 Python
关于numpy数组轴的使用详解
Dec 05 Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
动态加载js的几种方法
2006/10/23 Javascript
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
js中eval详解
2012/03/30 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python变量作用范围实例分析
2015/07/07 Python
Python随机数random模块使用指南
2016/09/09 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
tornado 多进程模式解析
2018/01/15 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
白色公司:The White Company
2017/10/11 全球购物
学校后勤人员职责
2013/12/27 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
旅游网创业计划书
2014/01/31 职场文书
经济管理自荐书
2014/06/09 职场文书
廉洁自律个人总结
2015/02/14 职场文书
紧急迫降观后感
2015/06/15 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js