本篇主要带大家接触4个简单的opencv-python图像处理示例,看看opencv-python的简洁和强大之处,希望大家都能爱上她[爱慕]
一. 图像显示
1.读入图像
使用函数 cv2.imread() 读入图像。
第一个参数是图片路径,这幅图像应该在此程序的工作路径,或者给函数提供完整路径;
第二个参数是要告诉函数应该如何读取这幅图片:
cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。
cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
2.显示图像
使用函数 cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口名,第二个参数是要显示的图像数据。
import cv2
img = 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 cv2
imgSource = 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 cv2
imgSource = 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 cv2
imgSource = 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上运行上述代码,显示界面如下图所示