赞
踩
任意二阶微分必须满足:灰度不变的区域微分值为0;灰度台阶或斜坡的起点处微分值非0;沿着斜坡的微分值为0。由于处理离散值,因此微分用差分近似:
二维图像f(x,y),沿着两个空间坐标轴求解二阶微分:
拉普拉斯算子为:
由于上述拉普拉斯变换未考虑对角线元素,可以对其添加对角线元素,并更改中心项系数,保证模板系数和为0,保证灰度恒定区域微分值为0。
c左边是中心系数为正的拉普拉斯算子,右边为中心为正扩展的拉普拉斯算子。
对原始图像使用拉普拉斯算子进行空间滤波可得到拉普拉斯图像,将拉普拉斯图像以一定比例叠加到原始图像可对原始图像进行拉普拉斯锐化增强。
- from skimage import io, filters
- from matplotlib import pyplot as plt
- from skimage.color import rgb2gray
-
-
- def set_ch():
- from pylab import mpl
- mpl.rcParams['font.sans-serif'] = ['FangSong']
- mpl.rcParams['axes.unicode_minus'] = False
-
-
- set_ch()
- I = io.imread("I1.jpg")
- I_gray = rgb2gray(I)
- # laplace
- I_laplace = filters.laplace(I_gray, ksize=3, mask=None)
- I_enhance = 0.9 * I_gray + 0.1 * I_laplace
- # 显示
- plt.figure()
- plt.title("灰度图")
- plt.imshow(I_gray, cmap='gray')
- plt.figure()
- plt.title("laplace图像")
- plt.imshow(I_laplace, cmap='gray')
- plt.figure()
- plt.title("增强图像")
- plt.imshow(I_enhance, cmap='gray')
- plt.show()
将原图和Laplace图像以一定比例叠加,可得拉普拉斯锐化增强图像,与之前文章的一阶微分算子相比,二阶微分对灰度变化强烈的地方更敏感,更能突出图像纹理;而一阶微分更能突出图像的边缘。
图像平滑处理有边缘和细节模糊的负面效果,可用原始图像减去平滑处理后的图像实现锐化处理,称为反锐化屏蔽。
步骤:
原始图像f(x,y)平滑处理后得到模糊图像g(x,y),原始图像减去模糊图像得到差值图像d(x,y),以一定比例叠加到原始图像,得到锐化增强图像,达到反锐化屏蔽效果。
其中,权重系数c(c>=0)。c=1时称为反锐化屏蔽,c>1称为高提升滤波,c<1时不强调反锐化屏蔽效果。
- from scipy import signal
-
- import numpy as np
- from skimage import io, filters
- from matplotlib import pyplot as plt
- from skimage.color import rgb2gray
-
-
- def set_ch():
- from pylab import mpl
- mpl.rcParams['font.sans-serif'] = ['FangSong']
- mpl.rcParams['axes.unicode_minus'] = False
-
-
- # 定义二维灰度图像空间滤波函数:
- def filter2d(img, window):
- s = signal.correlate2d(img, window, mode='same', boundary='fill') # fill 滤波前用常值填充图像边缘,默认为0
- return s
-
-
- set_ch()
- I = io.imread("I.jpg")
- I_gray = rgb2gray(I)
- # 盒状滤波模板
- win = np.ones((9, 9)) / (9 ** 2)
- I_blur = filter2d(I_gray, win)
- I_edge = I_gray - I_blur
- I_enhance = I_gray + I_edge
- # 显示
- plt.figure()
- plt.title("灰度图")
- plt.imshow(I_gray, cmap='gray')
- plt.figure()
- plt.title("模糊图像")
- plt.imshow(I_blur, cmap='gray')
- plt.figure()
- plt.title("插值图像")
- plt.imshow(I_edge, cmap='gray')
- plt.figure()
- plt.title("锐化增强图像")
- plt.imshow(I_enhance, cmap='gray')
-
- plt.show()
观察上图,插值图像中边缘信息较为丰富。原始图像加上插值图像可以得到瑞华增强图像。也可以修改原始图像与插值图像的叠加比例,观察反锐化屏蔽与高提升滤波的对比。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。