文档详情

IDL入门教程03b(图像数据处理)(下).doc

发布:2017-04-19约4.45千字共6页下载文档
文本预览下载声明
平滑图像 可以通过将每个像素值与它周围相邻像素值进行平均来平滑图像。这就是均值或方盒平滑。均值平滑是由IDL中的功能函数Smooth完成的,它是在给定的奇数宽度的范围内实现等加权值平滑。例如,如果周围是3*3宽度,那么每个像素由它和它的周围八个像素值的平均值代替。 比较一幅没有经过平滑处理的图像和经过5*5 方盒的均值平滑处理后的图像,键入: IDLWindow,0,XSize=192*3,YSize=192 IDLTV,image,0,0 IDLsmoothed=Smooth(image,5,/Edge_Truncate) IDLTV, smoothed, 192, 0 注意,与命令Smooth一起使用的关键字Edge_Truncate。该关键字可复制图像边缘附近的像素,以便实现整幅图像的平滑。如果不使用该关键字,图像边缘附近的像素仅仅是简单复制,而没有平滑。 图像平滑被应用在一种称作晕光蒙片的图像处理技术中。这种技术可用作定位图像上的棱边或者是像素值突然变化的地方。这种技术非常简单:从未平滑的图像中减去平滑的图像即可。键入: IDLTV, ((image-smoothed)+255)/2.0, 2*192, 0 图像显示应如图36所示。 用Smooth命令,赋给相邻的像素值相等的权值来计算平均值。有时会导致出现不希望的模糊图像。另一种方式是用称为卷积的过程来平滑图像。这种技术中,一个方形内核和图像一起参与卷积计算。例如,在3*3的情况下,Smooth命令使用的内核为: 1 1 1 1 1 1 1 1 1 如果给予中心像素值更大的权值,而它周围像素值的权值小一些,图像就不会那么模糊了。例如,可以创建如下的一个核心: 1 2 1 2 8 2 1 2 1 通过Convol命令用上述内核对图像进行卷积处理,键入: IDLkernel=[[1,2,1], [2,8,2], [1,2,1]] IDLTV, image, 0, 0 IDLTV, Smooth(image, 3, /Edge_Truncate), 192, 0 IDLTV, Convol(image, kernel, Total(kernel), $ /Edge_Truncate), 2*192, 0 图36:左边为原始图像,中间为平滑处理过的图像,右边为经晕光蒙片处理后的图像。 当然,可以创建任意大小的内核。如下是一个典型高斯分布的5*5内核: 1 2 3 2 1 2 7 11 7 2 3 11 17 11 3 2 7 11 7 2 1 2 3 2 1 可将上述内核应用于图像处理: IDLkernel=[[1,2,3,2,1], [2,7,11,7,2], [3,11,17,11,3], $ [2,7,11,7,2], [1,2,3,2,1]] IDLTV, Convol(image, kernel, Total(kernel), $ /Edge_Truncate), 192*2, 0 消除图像噪声 将图像上的噪声消除是一种常规的图像处理技术。噪声来自许多方面,它经常降低图像质量。噪声的一般表现形式是黑白点相间噪声,其中一些随机的像素有极端的像素值。要了解图像平滑是怎样剔除这种噪声的,首先需要创建一幅噪声图像。用以前的图像,并键入如下的命令,将10%的像素转换为黑白点相间噪声: IDLnoisy=image IDLpoints=RandomU(seed, 1800)*192*192 IDLnoisy(points)=255 IDLpoints=RandomU(seed, 1800)*192*192 IDLnoisy(points)=0 在原始图像的旁边创建一个窗口并显示噪声图像: IDLWindow,XSize=192*3,YSize=192 IDLTV,image,0,0 IDLTV, noisy, 192, 0 IDL中的Median命令是从图像上消除黑白点相间噪声的很好选择。Median命令与Smooth命令类似。不同之处是Median命令计算相邻像素的中间值,而不是平均值。这就有两个重要作用。第一,它能删除图像中的极端值。第二,它不使那些尺寸比邻域范围大的图像棱边或特征变模糊。要看是如何工作的,键入: IDLTV, Median(noisy, 3), 2*192, 0 图形显示应如图37所示。 图37:左边为原始图像,中间为噪声图像,右边为用中值滤波器平滑处理后的噪声图像。 增强图像棱边 一个
显示全部
相似文档