如何选择响应式网站,公司网址要收费吗,cc网站域名注册,深圳免费网站建设目录
前言
一、常用形态学操作
二、腐蚀和膨胀
1.图像腐蚀
2.图形膨胀
三、开运算和闭运算
1.开运算
2.闭运算
四、顶帽和黑帽
1.顶帽
2.黑帽
五、梯度运算
总结 前言 图像形态学是一种用于处理和分析图像形状和结构的技术。 一、常用形态学操作
膨胀#xff08…目录
前言
一、常用形态学操作
二、腐蚀和膨胀
1.图像腐蚀
2.图形膨胀
三、开运算和闭运算
1.开运算
2.闭运算
四、顶帽和黑帽
1.顶帽
2.黑帽
五、梯度运算
总结 前言 图像形态学是一种用于处理和分析图像形状和结构的技术。 一、常用形态学操作
膨胀Dilation扩展前景区域使对象变大。腐蚀Erosion缩小前景区域去除小的噪声点。开运算Opening先腐蚀后膨胀用于去除小物体。闭运算Closing先膨胀后腐蚀用于填充小孔洞。顶帽Top-hat原图像与开运算结果的差异。用于提取图像中比背景亮的细节通常用于突出小的亮区域。黑帽Black-hat闭运算结果与原图像的差异。用于提取图像中比背景暗的细节通常用于突出小的暗区域。梯度运算梯度运算实际上是膨胀操作减去腐蚀操作的结果。 二、腐蚀和膨胀
1.图像腐蚀
缩小前景区域去除小的噪声点。
import numpy as np
import cv2
图像腐蚀
dst cv2.erode(src, kernel, dst,anchor,iterations,borderType,borderValue)sun cv2.imread(sun.png)
cv2.imshow(sun, sun)
cv2.waitKey(0)kernel np.ones((2, 2), np.uint8) # 设置kernel大小
erosion_1 cv2.erode(sun, kernel, iterations5)
cv2.imshow(erode, erosion_1)
cv2.waitKey(0)
输出
左边是原图右边是腐蚀之后的 2.图形膨胀
扩展前景区域使对象变大。
import numpy as np
import cv2
图像膨胀
dst cv2.dilate(img, kernel,iteration)text cv2.imread(eng_text.png)
cv2.imshow(text, text)
cv2.waitKey(0)kernel np.ones((2, 2), np.uint8)
text_new cv2.dilate(text, kernel, iterations3)
cv2.imshow(dilate, text_new)
cv2.waitKey(0)
输出
左边是原图右边是膨胀之后的图像 三、开运算和闭运算
1.开运算
先腐蚀后膨胀用于去除小物体。
# 开运算 先腐蚀后膨胀
zw_noise cv2.imread(zw_noise.png)
cv2.imshow(zw_noise, zw_noise)
cv2.waitKey(0)kernel np.ones((2, 2), np.uint8)
zw_open cv2.morphologyEx(zw_noise, cv2.MORPH_OPEN, kernel) # 先腐蚀 后膨胀
cv2.imshow(zw_open, zw_open)
cv2.waitKey(0)
输出
左边是原图右边是进行开运算之后的图片 2.闭运算
先膨胀后腐蚀用于填充小孔洞。
zw cv2.imread(zw.png)
cv2.imshow(zw, zw)
cv2.waitKey(0)kernel np.ones((5, 5), np.uint8)
zw_close cv2.morphologyEx(zw, cv2.MORPH_CLOSE, kernel) # 先腐蚀 后膨胀
cv2.imshow(zw_close, zw_close)
cv2.waitKey(0)
输出
左边是原图右边是经过闭运算之后的图可以看出来指纹有些断开的地方连接起来了 四、顶帽和黑帽
1.顶帽
原图像与开运算结果的差异。用于提取图像中比背景亮的细节通常用于突出小的亮区域。
sun cv2.imread(sun.png)
cv2.imshow(sun, sun)
cv2.waitKey(0)kernel np.ones((2, 2), np.uint8)
# 开运算
open_sun cv2.morphologyEx(sun, cv2.MORPH_OPEN, kernel)
cv2.imshow(open_sun, open_sun)
cv2.waitKey(0)
# 顶帽
tophat cv2.morphologyEx(sun, cv2.MORPH_TOPHAT, kernel)
cv2.imshow(tophat, tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出
左边原图中间开运算右边顶帽运算顶帽之后有种凹陷的感觉 2.黑帽
闭运算结果与原图像的差异。用于提取图像中比背景暗的细节通常用于突出小的暗区域。
sun cv2.imread(sun.png)
cv2.imshow(sun, sun)
cv2.waitKey(0)
kernel np.ones((2, 2), np.uint8)
cv2.imshow(sun, sun)
cv2.waitKey(0)
# 闭运算
close_sun cv2.morphologyEx(sun, cv2.MORPH_CLOSE, kernel)
cv2.imshow(close_sun, close_sun)
cv2.waitKey(0)
# 黑帽
blackhat cv2.morphologyEx(sun, cv2.MORPH_BLACKHAT, kernel)
cv2.imshow(blackhat, blackhat)
cv2.waitKey(0)
输出
左边原图中间闭运算右边黑帽之后的图片 五、梯度运算
用于提取图像的边缘计算图像的变化率。 梯度运算: 膨胀-腐蚀text cv2.imread(eng_text.png)
# cv2.imshow(text, text)
# cv2.waitKey(0)kernel np.ones((2, 2), np.uint8)
# 膨胀
pz_text cv2.dilate(text, kernel, iterations2)
cv2.imshow(pz_text, pz_text)
cv2.waitKey(0)
# 腐蚀
fs_text cv2.erode(text, kernel, iterations2)
cv2.imshow(fs_text, fs_text)
cv2.waitKey(0)
# 膨胀-腐蚀
text_new cv2.morphologyEx(text, cv2.MORPH_GRADIENT, kernel)
cv2.imshow(text_new, text_new)
cv2.waitKey(0)输出
左边是膨胀的图片中间是腐蚀的图片右边是梯度运算之后的图片有一种镂空的感觉 总结 这些处理方法主要用于图像的边缘检测和特征增强。通过膨胀图像的前景区域会被扩展填补细小的空洞通过腐蚀前景区域会被缩小去除噪声。梯度运算膨胀减腐蚀则能够突出图像中的边缘信息有助于识别和分析图像中的结构和形状。