当前位置:   article > 正文

二阶微分算子与反锐化屏蔽_filters.laplace

filters.laplace

二阶微分算子

  任意二阶微分必须满足:灰度不变的区域微分值为0;灰度台阶或斜坡的起点处微分值非0;沿着斜坡的微分值为0。由于处理离散值,因此微分用差分近似:

      

 

二维图像f(x,y),沿着两个空间坐标轴求解二阶微分:

 拉普拉斯算子为:

 由于上述拉普拉斯变换未考虑对角线元素,可以对其添加对角线元素,并更改中心项系数,保证模板系数和为0,保证灰度恒定区域微分值为0。

\bigtriangledown ^{2}f=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)+f(x-1,y-1)+f(x+1,y+1)-8f(x,y)

 

c左边是中心系数为正的拉普拉斯算子,右边为中心为正扩展的拉普拉斯算子。 

对原始图像使用拉普拉斯算子进行空间滤波可得到拉普拉斯图像,将拉普拉斯图像以一定比例叠加到原始图像可对原始图像进行拉普拉斯锐化增强。

  1. from skimage import io, filters
  2. from matplotlib import pyplot as plt
  3. from skimage.color import rgb2gray
  4. def set_ch():
  5. from pylab import mpl
  6. mpl.rcParams['font.sans-serif'] = ['FangSong']
  7. mpl.rcParams['axes.unicode_minus'] = False
  8. set_ch()
  9. I = io.imread("I1.jpg")
  10. I_gray = rgb2gray(I)
  11. # laplace
  12. I_laplace = filters.laplace(I_gray, ksize=3, mask=None)
  13. I_enhance = 0.9 * I_gray + 0.1 * I_laplace
  14. # 显示
  15. plt.figure()
  16. plt.title("灰度图")
  17. plt.imshow(I_gray, cmap='gray')
  18. plt.figure()
  19. plt.title("laplace图像")
  20. plt.imshow(I_laplace, cmap='gray')
  21. plt.figure()
  22. plt.title("增强图像")
  23. plt.imshow(I_enhance, cmap='gray')
  24. plt.show()

  将原图和Laplace图像以一定比例叠加,可得拉普拉斯锐化增强图像,与之前文章的一阶微分算子相比,二阶微分对灰度变化强烈的地方更敏感,更能突出图像纹理;而一阶微分更能突出图像的边缘。 

反锐化屏蔽

  图像平滑处理有边缘和细节模糊的负面效果,可用原始图像减去平滑处理后的图像实现锐化处理,称为反锐化屏蔽。

步骤:

 原始图像f(x,y)平滑处理后得到模糊图像g(x,y),原始图像减去模糊图像得到差值图像d(x,y),以一定比例叠加到原始图像,得到锐化增强图像,达到反锐化屏蔽效果。

          d(x,y)=f(x,y)-s(x,y)                                  g(x,y)=f(x,y)+c*d(x,y)

   其中,权重系数c(c>=0)。c=1时称为反锐化屏蔽,c>1称为高提升滤波,c<1时不强调反锐化屏蔽效果。

  1. from scipy import signal
  2. import numpy as np
  3. from skimage import io, filters
  4. from matplotlib import pyplot as plt
  5. from skimage.color import rgb2gray
  6. def set_ch():
  7. from pylab import mpl
  8. mpl.rcParams['font.sans-serif'] = ['FangSong']
  9. mpl.rcParams['axes.unicode_minus'] = False
  10. # 定义二维灰度图像空间滤波函数:
  11. def filter2d(img, window):
  12. s = signal.correlate2d(img, window, mode='same', boundary='fill') # fill 滤波前用常值填充图像边缘,默认为0
  13. return s
  14. set_ch()
  15. I = io.imread("I.jpg")
  16. I_gray = rgb2gray(I)
  17. # 盒状滤波模板
  18. win = np.ones((9, 9)) / (9 ** 2)
  19. I_blur = filter2d(I_gray, win)
  20. I_edge = I_gray - I_blur
  21. I_enhance = I_gray + I_edge
  22. # 显示
  23. plt.figure()
  24. plt.title("灰度图")
  25. plt.imshow(I_gray, cmap='gray')
  26. plt.figure()
  27. plt.title("模糊图像")
  28. plt.imshow(I_blur, cmap='gray')
  29. plt.figure()
  30. plt.title("插值图像")
  31. plt.imshow(I_edge, cmap='gray')
  32. plt.figure()
  33. plt.title("锐化增强图像")
  34. plt.imshow(I_enhance, cmap='gray')
  35. plt.show()

 

 

 

   观察上图,插值图像中边缘信息较为丰富。原始图像加上插值图像可以得到瑞华增强图像。也可以修改原始图像与插值图像的叠加比例,观察反锐化屏蔽与高提升滤波的对比。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/72504
推荐阅读
相关标签
  

闽ICP备14008679号