标签:
为了提高图像的对比度,凸显边缘轮廓,通常可以使用一些梯度算子来进行图像增强,如roberts交叉算子,soble算子,laplace算子等。
假设图像用函数f(x,y)表示,那么处理的结果可以分别表示为:
g(x,y)=(|Gl|+|Gr|)*f(x,y)
g(x,y)=(|Gx|+|Gy|)*f(x,y)
g(x,y)=|G|*f(x,y)
作为例子,使用laplace算子对图像进行了处理,结果显示图中灰度变化缓慢的区域得到了抑制。左下图为原始图像,右下为处理结果
python代码如下:
from PIL import Image
from numpy import *
from pylab import *
def imEnhance(im,kernel):
r,c = im.shape
kr,kc = kernel.shape
im2 = zeros((r,c))
im3 = zeros((r+kr-1,c+kc-1))
for i in range(r):
for j in range(c):
im3[i+(kr-1)/2,j+(kc-1)/2]=im[i,j]
for i in range(r):
for j in range(c):
im2[i,j]= sum(im3[i:i+kr,j:j+kc]*kernel)
return im2
im =array(Image.open("lena.jpg").convert('L'))
print im[0:3,0:3]
gray()
figure(1)
imshow(im)
laplace = array([[0,1,0],[1,-4,1],[0,1,0]])
im=imEnhance(im,laplace)
min_val=im.min()
max_val=im.max()
im = (im-min_val)/(max_val-min_val)*255.0
figure(2)
imshow(im)
show()假设f(x,y)的傅里叶变换为F(u,v)
Roberts算子和Sobel算子用于模拟一阶偏导df,laplace算子则对应于二阶偏导d^2f/dx^2+d^2f/dy^2.
数学推导过程如下:
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/flushhj/article/details/47703013