龙空技术网

OpenCV-Python学习—(2)简单图像处理

record0206 358

前言:

如今同学们对“opencv图像处理”大致比较关注,兄弟们都需要了解一些“opencv图像处理”的相关内容。那么小编在网上汇集了一些关于“opencv图像处理””的相关资讯,希望同学们能喜欢,咱们快快来了解一下吧!

本篇主要带大家接触4个简单的opencv-python图像处理示例,看看opencv-python的简洁和强大之处,希望大家都能爱上她[爱慕]

一. 图像显示

1.读入图像

使用函数 cv2.imread() 读入图像。

第一个参数是图片路径,这幅图像应该在此程序的工作路径,或者给函数提供完整路径;

第二个参数是要告诉函数应该如何读取这幅图片:

cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。

cv2.IMREAD_GRAYSCALE:以灰度模式读入图像

2.显示图像

使用函数 cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口名,第二个参数是要显示的图像数据。

import cv2img = cv2.imread(r'D:\MM.jpg')cv2.imshow('MM',img)cv2.waitKey(0)

在VS Code上运行上述代码,显示界面如下图所示

图像显示

二. 图像腐蚀

1.使用函数 cv2.imread() 读入图像

2.使用函数cv2.getStructuringElement()获取内核矩阵

第一个参数表示内核的形状,有三种形状可以选择。

MORPH_RECT:矩形;

MORPH_CORSS:交错形状;

MORPH_ELLIPSE:椭圆形;

第二参数是内核的尺寸

第三个参数是锚点的位置,默认值(-1,-1)表示锚点位于结构元素中心

3.使用函数cv2.erode()函数进行图像腐蚀操作

第一个参数是原始图像

第二个参数是用于腐蚀操作的结构元素,可以使用getStructuringElement来取得结构元素

4.使用函数 cv2.imshow() 显示图像

import cv2imgSource = cv2.imread(r'D:\MM.jpg')cv2.imshow('original',imgSource)element = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))imgDst = cv2.erode(imgSource,element)cv2.imshow('erode',imgDst)cv2.waitKey(0)

在VS Code上运行上述代码,显示界面如下图所示

腐蚀图

内核尺寸设置为(5,5),也可以自己试试其他尺寸的效果图,比如(15,15) 【当我没说[打脸]】。为了大美女的形象,就不展示其他效果图了[呆无辜]

三. 图像模糊

1.使用函数 cv2.imread() 读入图像

2.使用函数cv2.blur()函数进行均值滤波操作

第一个参数是原始图像

第二个参数表示进行均值滤波的方框大小

3.使用函数 cv2.imshow() 显示图像

import cv2imgSource = cv2.imread(r'D:\MM.jpg')cv2.imshow('original',imgSource)imgDst = cv2.blur(imgSource,(6,6))cv2.imshow('blur',imgDst)cv2.waitKey(0)

在VS Code上运行上述代码,显示界面如下图所示

模糊效果图

四. canny边缘检测

1.使用函数 cv2.imread() 读入图像

2.使用函数 cv2.cvtColor() 进行颜色空间转换操作

第一个参数是原始图像

第二个参数是转换类型

COLOR_BGR2GRAY:将BGR格式转换成灰度图片

COLOR_BGR2RGB:将BGR格式转换成RGB格式

COLOR_BGR2HSV:将BGR格式转换成HSV格式

3.使用函数cv2.blur()函数进行均值滤波以降噪

4.使用函数cv2.Canny()函数进行边缘检测操作

第一个参数是原始图像(必须为单通道图)

第二个参数是阈值1

第三个参数是阈值2,用于检测图像中明显的边缘

5.使用函数 cv2.imshow() 显示图像

import cv2imgSource = cv2.imread(r'D:\MM.jpg')cv2.imshow('original',imgSource)imgGray = cv2.cvtColor(imgSource,cv2.COLOR_BGR2GRAY)edge = cv2.blur(imgGray,(3,3))edge = cv2.Canny(edge,3,30)cv2.imshow('Canny',edge)cv2.waitKey(0)

在VS Code上运行上述代码,显示界面如下图所示

边缘检测效果图

标签: #opencv图像处理