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中的多线程实例教程
Aug 27 Python
python修改注册表终止360进程实例
Oct 13 Python
Python多线程编程简单介绍
Apr 13 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
python添加模块搜索路径方法
Sep 11 Python
Python中int()函数的用法浅析
Oct 17 Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
如何在django中添加日志功能
Feb 06 Python
如何在django中实现分页功能
Apr 22 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
python 如何快速复制序列
Sep 07 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中的函数嵌套层数限制分析
2011/06/13 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
mongoose更新对象的两种方法示例比较
2017/12/19 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[01:09:24]Ti4开幕式
2014/07/19 DOTA
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
python实现定时同步本机与北京时间的方法
2015/03/24 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python 查看文件的编码格式方法
2017/12/21 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
PyQt5响应回车事件的方法
2019/06/25 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
租赁协议书范本
2014/04/22 职场文书
秋天的雨教学反思
2014/04/27 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
开除员工通知
2015/04/22 职场文书
2015暑假假期总结
2015/07/13 职场文书
vue实现在data里引入相对路径
2022/06/05 Vue.js