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解决网站的反爬虫策略总结
Oct 26 Python
python正则表达式re之compile函数解析
Oct 25 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
PyTorch上实现卷积神经网络CNN的方法
Apr 28 Python
python中实现字符串翻转的方法
Jul 11 Python
用pycharm开发django项目示例代码
Jun 13 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
Python异常模块traceback用法实例分析
Oct 22 Python
三个python爬虫项目实例代码
Dec 28 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 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 5.0创建图形的巧妙方法
2010/10/12 PHP
php实现上传图片生成缩略图示例
2014/04/13 PHP
PHP易混淆知识整理笔记
2015/09/24 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
JS中的构造函数详细解析
2014/03/10 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
layui实现数据分页功能
2019/07/27 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
基于python socketserver框架全面解析
2017/09/21 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
parser.add_argument中的action使用
2020/04/20 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
职业规划书如何设计?
2014/01/09 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
js之ajax文件上传
2021/05/13 Javascript