线性灰度变换
一、实验目的
1结合实例学习如何在视频显示程序中增加图像处理算法; 2理解和掌握图像的线性变换和直方图均衡化的原理和应用;
3了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;
4 了解噪声模型及对图像添加噪声的基本方法。
二、实验原理
1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
g(x,y)?T[f(x,y)]
0?f(x,y)?a??f(x,y)?g(x,y)???[f(x,y)?a]?ga a?f(x,y)?b
??[f(x,y)?b]?gb?f(x,y)?255b?x?1,2,?,m, y?1,2,?n
2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图
像。按照图像概率密度函数PDF的定义:
pr(rk)?nk k?0,1,2,...,L?1 nkk通过转换公式获得:
sk?T(rk)??pr(rj)??j?0j?0njn k?0,1,2,...,L?1
3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。将模板中的全体像素的均值(中值)来代替原来像素值的方法。
4 拉普拉斯算子如下:
??1?1?1???18?1??? ???1?1?1?? 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将
这个差异加上自身作为新像素的灰度。 三、实验步骤
1 启动MATLAB程序,对图像文件分别进行灰度线性变换(参考教材57页,例4.1)、直方图均衡化(参考教材64页,例4.6)、均值滤波(参考教材69页,例4.9)、中值滤波(参考教材73页,例4.11)和梯度锐化操作(参考教材76页,例4.12)。添加噪声,重复上述过程观察处理结果。
2记录和整理实验报告: 对图像文件进行灰度线性变换
(1)对图像pout.tif,将其小于30的灰度值不变,将30到150的灰度值拉伸到30到200,同时压缩150到255的灰度值到200到255之间。 I=imread('pout.tif'); imshow(I); I=double(I); [M,N]=size(I); fori=1:M for j=1:N if I(i,j)<=30 I(i,j)=I(i,j); elseif I(i,j)<=150
I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30; else
I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200; end end end
figure(2);imshow(uint8(I
(2)对图像pout.tif添加高斯噪声后进行灰度值线性变换 J=imread('pout.tif');
I=imnoise(J,'gaussian',0,0.01); imshow(I); I=double(I); [M,N]=size(I); fori=1:M for j=1:N if I(i,j)<=30 I(i,j)=I(i,j); elseif I(i,j)<=150
I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30; else
I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200; end end
end
figure(2);imshow(uint8(I));
对图像文件进行直方图均衡化: (1)原图
I=imread('circuit.tif'); figure
subplot(221);imshow(I) subplot(222);imhist(I) I1=histeq(I); figure
subplot(221);imshow(I1) subplot(222);imhist(I1)
(2)加入高斯噪声
J=imread('circuit.tif');
I=imnoise(J,'gaussian',0,0.01);