资源描述:
《idl入门教程三(下)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、平滑图像可以通过将每个像素值与它周围相邻像素值进行平均来平滑图像。这就是均值或方盒平滑。均值平滑是由IDL中的功能函数Smooth完成的,它是在给定的奇数宽度的范围内实现等加权值平滑。例如,如果周围是3*3宽度,那么每个像素由它和它的周围八个像素值的平均值代替。比较一幅没有经过平滑处理的图像和经过5*5 方盒的均值平滑处理后的图像,键入:IDL>Window,0,XSize=192*3,YSize=192IDL>TV,image,0,0IDL>smoothed=Smooth(image,5,/Edge_Truncate)IDL>TV
2、,smoothed,192,0注意,与命令Smooth一起使用的关键字Edge_Truncate。该关键字可复制图像边缘附近的像素,以便实现整幅图像的平滑。如果不使用该关键字,图像边缘附近的像素仅仅是简单复制,而没有平滑。图像平滑被应用在一种称作晕光蒙片的图像处理技术中。这种技术可用作定位图像上的棱边或者是像素值突然变化的地方。这种技术非常简单:从未平滑的图像中减去平滑的图像即可。键入:IDL>TV,((image-smoothed)+255)/2.0,2*192,0图像显示应如图36所示。用Smooth命令,赋给相邻的像素值相等的
3、权值来计算平均值。有时会导致出现不希望的模糊图像。另一种方式是用称为卷积的过程来平滑图像。这种技术中,一个方形内核和图像一起参与卷积计算。例如,在3*3的情况下,Smooth命令使用的内核为:111111111如果给予中心像素值更大的权值,而它周围像素值的权值小一些,图像就不会那么模糊了。例如,可以创建如下的一个核心:121282121通过Convol命令用上述内核对图像进行卷积处理,键入:IDL>kernel=[[1,2,1],[2,8,2],[1,2,1]]IDL>TV,image,0,0IDL>TV,Smooth(image,
4、3,/Edge_Truncate),192,0IDL>TV,Convol(image,kernel,Total(kernel),$/Edge_Truncate),2*192,0图36:左边为原始图像,中间为平滑处理过的图像,右边为经晕光蒙片处理后的图像。当然,可以创建任意大小的内核。如下是一个典型高斯分布的5*5内核:123212711723111711327117212321可将上述内核应用于图像处理:IDL>kernel=[[1,2,3,2,1],[2,7,11,7,2],[3,11,17,11,3],$[2,7,11,7,2]
5、,[1,2,3,2,1]]IDL>TV,Convol(image,kernel,Total(kernel),$/Edge_Truncate),192*2,0消除图像噪声将图像上的噪声消除是一种常规的图像处理技术。噪声来自许多方面,它经常降低图像质量。噪声的一般表现形式是黑白点相间噪声,其中一些随机的像素有极端的像素值。要了解图像平滑是怎样剔除这种噪声的,首先需要创建一幅噪声图像。用以前的图像,并键入如下的命令,将10%的像素转换为黑白点相间噪声:IDL>noisy=imageIDL>points=RandomU(seed,1800)
6、*192*192IDL>noisy(points)=255IDL>points=RandomU(seed,1800)*192*192IDL>noisy(points)=0在原始图像的旁边创建一个窗口并显示噪声图像:IDL>Window,XSize=192*3,YSize=192IDL>TV,image,0,0IDL>TV,noisy,192,0IDL中的Median命令是从图像上消除黑白点相间噪声的很好选择。Median命令与Smooth命令类似。不同之处是Median命令计算相邻像素的中间值,而不是平均值。这就有两个重要作用。第一
7、,它能删除图像中的极端值。第二,它不使那些尺寸比邻域范围大的图像棱边或特征变模糊。要看是如何工作的,键入:IDL>TV,Median(noisy,3),2*192,0图形显示应如图37所示。图37:左边为原始图像,中间为噪声图像,右边为用中值滤波器平滑处理后的噪声图像。增强图像棱边一个图像可以锐化或通过微分来增强图像棱边。IDL提供了两个做好的棱边增强函数:Roberts和Sobel。还有一些其它方法也可用来增强图像棱边。例如,可以用拉普拉斯算子来和图像做卷积:11 11-7111 1因为改进了图像棱边的对比度,这也常常被称为拉
8、普拉斯(Laplacian)锐化操作。需要了解这些方法是如何工作的,可键入:IDL>TV,Sobel(image),0IDL>TV,Roberts(image),1IDL>kernel=[[1,1,1],[1,-7,1],[1,1,1