<>形态学梯度

基本梯度:经过膨胀操作的图像与经过腐蚀操作图像的差值图像,可以用来提取出物体的边缘部分。

内部梯度:原图像与经过腐蚀操作的图像的差值图像。

外部梯度:经过膨胀操作的图像与原图像的差值图像。

opencv中支持的是基本梯度,下面放一段代码和运行结果更直观的理解:
import cv2 import matplotlib.pyplot as plt img = cv2.imread("fig.jpg") kernel =
cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) gradient = cv2.morphologyEx(
img, cv2.MORPH_GRADIENT, kernel) plt.subplot(121); plt.imshow(img); plt.title(
"original") plt.subplot(122); plt.imshow(gradient); plt.title("gradient") plt.
show()

<>顶帽

原图像与经过开运算操作的图像的差值图像,作用是可以提取噪声,突出原图像中比周围亮的部分。(因为开运算本身可以去除一些孤立点,细微连接,毛刺等细节,所以这些细节就可以通过顶帽操作来提取出来)

下面一段代码和运行结果来更直观的理解:
import cv2 import matplotlib.pyplot as plt img = cv2.imread("fig.jpg") kernel =
cv2.getStructuringElement(cv2.MORPH_RECT, (25, 25)) tophat = cv2.morphologyEx(
img, cv2.MORPH_TOPHAT, kernel) plt.subplot(121); plt.imshow(img); plt.title(
"original") plt.subplot(122); plt.imshow(tophat); plt.title("tophat") plt.show()

<>黑帽

经过闭运算操作的图像与原图像的差值图像,作用是突出原图像中比周围暗的区域。(比如闭运算本身可以填补物体内部的一些黑洞,这些黑洞就可以通过黑帽运算来凸显)

下面一段代码和运行结果来更直观的理解:
import cv2 import matplotlib.pyplot as plt img = cv2.imread("fig.jpg") kernel =
cv2.getStructuringElement(cv2.MORPH_RECT, (25, 25)) blackhat = cv2.morphologyEx
(img, cv2.MORPH_BLACKHAT, kernel) plt.subplot(121); plt.imshow(img); plt.title(
"original") plt.subplot(122); plt.imshow(blackhat); plt.title("blackhat") plt.
show()

技术
©2020 ioDraw All rights reserved
python简单小游戏代码-10分钟用Python编写一个贪吃蛇小游戏,简单Linux之父:C++语言很烂 不会改用其重写Linux内核webpack配置postcss-loader无效简单的学生成绩管理系统歌词格式转化,trc转lrcGO语言学习笔记【webpack】DLL plugin原理分析伪造ACK实现TCP数据注入调研组织结构图消息称华为招聘半导体设备人才 网友:光刻机是刚需