62. 图像锐化——钝化掩蔽

2025-07-15  本文已影响0人  大龙10

空间域图像滤波索引

一、空间域锐化滤波(高通滤波)

二、钝化掩蔽

当 k>1 时,实现高提升滤波;当 k=1 时,实现钝化掩蔽;k<1时,减弱钝化掩蔽。

三、例程

import cv2
from matplotlib import pyplot as plt

# 1.77:图像锐化: 钝化掩蔽
img = cv2.imread(r"e:/opencv/bgra.png", flags=0)

# 对原始图像进行平滑,GaussianBlur(img, size, sigmaX)
imgGauss = cv2.GaussianBlur(img, (5,5), sigmaX=5)
imgGaussNorm = cv2.normalize(imgGauss,dst=None,alpha=0,beta=255,norm_type=cv2.NORM_MINMAX)

# 掩蔽模板:从原始图像中减去平滑图像
imgMask = img - imgGaussNorm

passivation1 = img + 0.6 * imgMask  # k<1 减弱钝化掩蔽
imgPas1 = cv2.normalize(passivation1, None, 0, 255, cv2.NORM_MINMAX)
passivation2 = img + imgMask  # k=1 钝化掩蔽
imgPas2 = cv2.normalize(passivation2, None, 0, 255, cv2.NORM_MINMAX)
passivation3 = img + 2 * imgMask  # k>1 高提升滤波
imgPas3 = cv2.normalize(passivation3, None, 0, 255, cv2.NORM_MINMAX)

plt.figure(figsize=(10, 7))
titleList = ["1. Original", "2. GaussSmooth", "3. MaskTemplate",
 "4. Passivation(k=0.5)", "5. Passivation(k=1.0)", "6. Passivation(k=2.0)"]
imageList = [img, imgGauss, imgMask, imgPas1, imgPas2, imgPas3]
for i in range(6):
    plt.subplot(2,3,i+1), plt.title(titleList[i]), plt.axis('off')
    plt.imshow(imageList[i], 'gray', vmin=0, vmax=255)
plt.tight_layout()
plt.show()

四、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/122034827
上一篇 下一篇

猜你喜欢

热点阅读