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 相关文章推荐
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 Python
如何使用Python标准库进行性能测试
Jun 25 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 Python
python迭代器常见用法实例分析
Nov 22 Python
Python:slice与indices的用法
Nov 25 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
Django数据库迁移常见使用方法
Nov 12 Python
python中numpy.empty()函数实例讲解
Feb 05 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
Python实现字典的key和values的交换
2015/08/04 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
sort命令的作用和用法
2012/11/04 面试题
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
安全生产先进个人总结
2015/02/15 职场文书
签字仪式主持词
2015/07/03 职场文书
车辆挂靠协议书
2016/03/23 职场文书
Python绘画好看的星空图
2022/03/17 Python