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 爬虫模拟登陆知乎
Sep 23 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
基于Pytorch SSD模型分析
Feb 18 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
Pandas读取csv时如何设置列名
Jun 02 Python
基于Python快速处理PDF表格数据
Jun 03 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
python正则表达式re.search()的基本使用教程
May 21 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警告错误信息的解决方法
2013/06/03 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
Python 爬虫之Beautiful Soup模块使用指南
2018/07/05 Python
tensorflow 查看梯度方式
2020/02/04 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
python中温度单位转换的实例方法
2020/12/27 Python
美国知名生活购物网站:Goop
2017/11/03 全球购物
UNIX文件类型
2013/08/29 面试题
少先队入队活动方案
2014/02/08 职场文书
食品安全汇报材料
2014/08/18 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
免职证明样本
2014/10/23 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python