基于Python的Opencv学习

基于Python的Opencv学习第九天

今天延续上一篇博客为大家讲一下形态学运算里面的梯度运算,礼帽操作和黑猫图像处理。

一.梯度运算

梯度运算就是在原始图像上,先经过膨胀操作得到膨胀图像,然后经过腐蚀操作,得到腐蚀图像,再利用得到的膨胀图像减去腐蚀图像得到的轮廓就是梯度操作。

梯度(image)=膨胀(image)-腐蚀(image)

梯度运算的结果是得到轮廓图像
基于Python的Opencv学习_第1张图片
进行梯度运算时,我们需要调用函数morphologyEx()

result=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)

具体参数和腐蚀操作参数含义一致,不做过多说明。

import cv2
import numpy as np
a=cv2.imread(r"C:\Users\LT010407\Desktop\2.jpg")
k=np.ones((5,5),np.uint8)
b=cv2.morphologyEx(a,cv2.MORPH_GRADIENT,k)
cv2.imshow("a",a)
cv2.imshow("b",b)

基于Python的Opencv学习_第2张图片
这就是进行梯度运算的代码和结果。

二.礼帽操作

礼帽操作和梯度运算相似,通过原始图像减去对原始图像进行开运算后得到的开运算图像,即得到礼貌图像。

礼帽(image)=原始图像(image)-开运算图像(image)

礼帽操作的结果可以获得噪声图像
基于Python的Opencv学习_第3张图片
在礼帽操作中需要调用函数morphologyEx()

result=cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)

这里均调用了morphologyEx()函数,只是里面一个固定的参数的变化。

import cv2
import numpy as np
a=cv2.imread(r"C:\Users\LT010407\Desktop\2.jpg")
k=np.ones((5,5),np.uint8)
b=cv2.morphologyEx(a,cv2.MORPH_TOPHAT,k)
cv2.imshow("a",a)
cv2.imshow("b",b)


基于Python的Opencv学习_第4张图片
这是代码和结果,可以看到这幅图像的噪声还是很少的。

三.黑帽操作

和礼帽操作相似,黑帽操作是在原始图像基础上进行闭运算得到闭运算图像,然后用闭运算图像减去原始图像得到黑帽图像。

黑帽图像(image)=闭运算图像(image)-原始图像(image)

得到图像内部的小孔,或前景色中的小黑点

基于Python的Opencv学习_第5张图片
在黑帽操作中需要调用函数morphologyEx()

result=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)

这里均调用了morphologyEx()函数,只是里面一个固定的参数的变化。

import cv2
import numpy as np
a=cv2.imread(r"C:\Users\LT010407\Desktop\2.jpg")
k=np.ones((5,5),np.uint8)
b=cv2.morphologyEx(a,cv2.MORPH_BLACKHAT,k)
cv2.imshow("a",a)
cv2.imshow("b",b)


基于Python的Opencv学习_第6张图片
今天讲了三个形态学操作,都是继承了前一篇博客的morphologyEx()函数,具体参数解释还得认真看一下上一篇博客。今天就到这里,小伙伴们下一篇博客见(转载注明出处)

你可能感兴趣的:(Python-opencv,笔记,opencv,计算机视觉,深度学习,python,cv)