Python OpenCV超详细讲解基本功能

作者:振华OPPO 时间:2021-04-26 11:47:36 

准备工作

右击新建的项目,选择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最基础的应用。眼过千遍不如手过一遍,快去动手敲一遍吧~💘

来源:https://blog.csdn.net/qq_42257666/article/details/122902863

标签:Python OpenCV,基本功能
0
投稿

猜你喜欢

  • 常见SQL Server 2000漏洞及其相关利用

    2007-10-01 14:45:00
  • P3P 和 跨域 (cross-domain) cookie 访问(读取和设置)

    2011-04-02 10:42:00
  • python利用MethodType绑定方法到类示例代码

    2023-08-23 08:07:31
  • Python字符串的创建和驻留机制详解

    2022-07-07 18:49:17
  • Anaconda最新版2023安装教程Spyder安装教程图文详解

    2021-12-24 00:29:56
  • UTF-8转为GB2312编码的asp函数

    2007-08-23 13:42:00
  • 面向新手解析python Beautiful Soup基本用法

    2023-11-06 22:29:50
  • python区分不同数据类型的方法

    2022-03-30 23:37:41
  • python3爬虫中多线程的优势总结

    2023-05-15 02:41:07
  • Python+random模块实现随机抽样

    2022-01-19 23:58:20
  • asp.net和php的区别点总结

    2024-06-07 15:45:59
  • mysql中json的使用方式详解

    2024-01-27 14:39:43
  • Python实现http接口自动化测试的示例代码

    2023-05-01 07:14:45
  • Python自定义主从分布式架构实例分析

    2022-09-24 01:28:29
  • 在Python中使用成员运算符的示例

    2023-12-12 01:36:20
  • Vue 2.0 服务端渲染入门介绍

    2023-07-02 16:58:52
  • Javascript浅拷贝与深拷贝实现

    2013-07-16 22:47:46
  • python中PyQuery库用法分享

    2023-12-05 03:08:31
  • js计算精度问题小结

    2024-04-10 13:55:24
  • Vue的生命周期一起来看看

    2024-05-02 17:03:21
  • asp之家 网络编程 m.aspxhome.com