数字图像处理期末论文 下载本文

内容发布更新时间 : 2024/11/16 20:48:28星期一 下面是文章的全部内容请认真阅读。

数字图像处理

变得模糊。而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强, 但同时也放大了图像的噪声。在MATLAB 中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,可用fspecial( )函数创建预定义的滤波算子,然后用filter2( )或conv2( )函数在实现卷积运算的基础上进行滤波。

2.3. 边缘检测和图像分割功能

边缘检测是一种重要的区域处理方法, 边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。如果一个像素落在边界上, 那么它的邻域将成为一个灰度级变化的带。对这种变化最有用的两个特征是灰度的变化率和方向。边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化,也包括对方向的确定,其中大多数是基于方向导数掩模求卷积的方法。MATLAB 工具箱提供的edge( )函数可针对sobel算子、prewitt 算子、Roberts 算子、log 算子和canny 算子实现检测边缘的功能。基于灰度的图像分割方法也可以用简单的MATLAB 代码实现。

2.4. 图像变换功能

图像变换技术是图像处理的重要工具,常运用于图像压缩、滤波、编码和后续的特征抽取或信息分析过程。MATLAB 工具箱提供了常用的变换函数,如fft2( )与ifft2( )函数分别实现二维快速傅立叶变换与其逆变换,dct2( )与idct2( )函数实现二维离散余弦变换与其逆变换, Radon( ),iradon( )函数实现Radon变换与逆Radon 变换。除了以上基本的图像处理功能,MATLAB 还提供了如二值图像的膨胀运算dilate( )函数、腐蚀运算erode( )函数等基于数学形态学与二值图像的操作函数。

3 MATLAB 图像处理工具箱运用实例

为了证明MATLAB 语言是一种简洁,可读性较强的高效率编程软件, 本文通过运用图像处理工具箱中的有关函数对一实拍的芯片图像进行处理。如图

5

数字图像处理

1,图“ Fig.jpg”为一幅原图像,该图像右边的剪切图像为从“ Fig.jpg”中剪切出的将用于分析的子图像块。为了便于分析与观察,把子图像块旋转90 度置于水平位置并把该图存在名为“ Fig1.jpg” 的图像文件中。以上的过程可用以下代码实现。

x=imread('E:\\study\\电子与通信\\Term 2\\数字图像处理DIP\\Fig.jpg'); figure,imshow(x); y=imcrop(x); figure,imshow(y,[]); z=imrotate(y,90);

imwrite(z,'E:\\study\\电子与通信\\Term 2\\数字图像处理DIP\\Fig1.jpg','jpg'); isrgb(z)

原图Fig.jpg 剪贴图Fig1.jpg

图1

经判断得知该图像为一真彩色图像, 首先把它转换为灰度图像, 以下所有的进一步处理均采用经过灰度化处理后的图像作为原图。

6

数字图像处理

3.1 对灰度图进行直方图均衡化处理

通过比较灰度原图和经均衡化后的图形可见图像变得清晰, 均衡化后的直方图形状比原直方图的形状更理想。效果比较见图2, 程序代码如下: x=imread('E:\\study\\电子与通信\\Term 2\\数字图像处理DIP\\Fig1.jpg'); y=rgb2gray(x);

subplot(221),imshow(y);title('Fig1.jpg 灰度化图像'); subplot(222),imhist(y);title('均衡化前直方图'); I=histeq(y);

subplot(223),imshow(I);title('均衡化后图像'); subplot(224),imhist(I);title('均衡化后直方图');

均衡化前直方图Fig1.jpg 灰度化图像6004002000050100150200250均衡化后直方图均衡化后图像10008006004002000050100150200250图2

7

数字图像处理

3.2灰度调整

通过灰度调整把感兴趣的灰度范围拉开,使图像中亮的越亮,暗的越暗,分别取原图中要变换的灰度范围为(0.3,0.7)和(0.5,0.6),把变换后的图像相比较,见图3,可知原图所变换的灰度范围小,则调整后的图像反差大。程序代码如下: x=imread('E:\\study\\电子与通信\\Term 2\\数字图像处理DIP\\Fig1.jpg'); y = imadjust(x,[0.3 0.7],[]); z = imadjust(x,[0.5 0.6],[]);

subplot(211),imshow(y);title('原图所变换的灰度范围为(0.3,0.7)'); subplot(212),imshow(z);title('原图所变换的灰度范围为(0.5,0.6)');

原图所变换的灰度范围为(0.3,0.7)原图所变换的灰度范围为(0.5,0.6)图3

3.3 灰度图像平滑与锐化处理

MATLAB 图像工具箱中有多种平滑与锐化滤波函数,也可以自定义滤波算

8

数字图像处理

子。在此我们采用可根据图像的局部方差来调整滤波器输出的自适应滤波对图像进行平滑,及采用拉氏算子运算使图像的模糊部分得到增强。 处理后的图像见图4,实现代码如下:

x=imread('E:\\study\\电子与通信\\Term 2\\数字图像处理DIP\\Fig1.jpg'); x=rgb2gray(x); x=double(x); p=wiener2(x);

subplot(211),imshow(p,[]);title('自适应滤波平滑') h=[0 1 0;1 -4 0;0 1 0]; q=conv2(x,h,'same'); r=x-q ;

subplot(212),imshow(r,[]);title('拉氏算子卷积锐化')

自适应滤波平滑拉氏算子卷积锐化图4

9