图像空域变换实验报告(共7页).doc
精选优质文档-倾情为你奉上 for j=1:n f=X2(i,j); g(i,j)=0; if (f>=0)&(f<=f1); %找出灰度级范围在060的元素 g(i,j)=r1*f+b1; %灰度级在030的进行灰度变换 elseif (f>=f1)&(f<=f2) %找出灰度级范围在60180的元素 g(i,j)=r2*f+b2; %灰度级在60180的进行灰度变换 elseif (f>=f2)&(f<=f3) %找出灰度级范围在180255的元素 g(i,j)=r3*f+b3; %灰度级在180255的进行灰度变换 end endendfigure,imshow(mat2gray(g) %函数mat2gray( )将数据矩阵转换成灰度图像 实 验 报 告(2014 2015 学年度 第 二 学期)班级: 学号 : 姓名: 同组试验者: 实验名称: 图像空域变换 日期: 2015.04.22 一、实验目的:1.掌握图像的线性和非线性变换和直方图均衡化的原理和应用;2. 理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;3.了解噪声模型及对图像添加噪声的基本方法。二、 实验原理1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。2.直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像,按照图像概率密度函数PDF的定义。三、实验内容1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。将一幅256X256的灰度图像,将060灰度级压缩到030范围内,压缩比1/2;60180的灰度级扩大到30240,比率为190/120;将180255灰度级压缩到240255范围内,压缩比为15/75.实验程序:X1=imread('1234.png');figure,imshow(X1)f0=0;g0=0;f1=60;g1=30;f2=180;g2=240; f3=255;g3=255;%绘制变换曲线figure,plot(f0,f1,f2,f3,g0,g1,g2,g3)axis tight,xlabel('f'),ylabel('g')%xlable,ylable加坐标轴文字标注title('intensity transformation')%给图形窗口加标题r1=(g1-g0)/(f1-f0);%求060灰度级范围内的压缩比b1=g0-r1*f0;r2=(g2-g1)/(f2-f1);%求60180灰度级范围内的压缩比b2=g1-r2*f1;r3=(g3-g2)/(f3-f2);%求180255灰度级范围内的压缩比b3=g2-r3*f2;m,n=size(X1); %求矩阵的行数m,列数nX2=double(X1); %将数据类型转换为双精度型%变换矩阵中的每个元素for i=1:m 专心-专注-专业2. 对数变换实验程序:I=imread('peppers.png');%读入图像figure;imshow(I);F=fft2(im2double(I);%FFTF=fftshift(F);%FFT频谱平移F=abs(F);T=log(F+1);%频谱对数变换figure;imshow(F,);title('未经变换的频谱');figure;imshow(T,);title('对数变换后'); 3. 幂次变换实验程序:I=imread('pout.tif');subplot(1,4,1);imshow(I);title('原图像','fontsize',9);subplot(1,4,2);imshow(imadjust(I,0.5);title('Gamma=0.5');subplot(1,4,3);imshow(imadjust(I,1);title('Gamma=1');subplot(1,4,4);imshow(imadjust(I,1.5);title('Gamma=1.5'); 4. 直方图变换实验程序:I = imread('tire.tif'); J = histeq(I);imshow(I)figure, imshow(J);figure,imhist(I,64)figure,imhist(J,64) 5. 图像平移实验程序:(1)I=imread('cameraman.tif');subplot(1,2,1);imshow(I);title('原始图像');M,N,=size(I);g=zeros(M,N);a=20;b=20;for i=1:M for j=1:N; if (i-a>0)&(i-a<M)&(j-b>0)&(j-b<N) g(i,j)=I(i-a,j-b); else g(i,j)=0; endend end subplot(1,2,2);imshow(uint8(g);title('平移后的图像');(2)F=imread('123.jpg');subplot(1,2,1);imshow(F);title('原始图像');se = translate(strel(1), 5 5);%参数0 20可以修改,修改后平移距离对应改变J = imdilate(F,se);subplot(1,2,2);imshow(J,);title('平移后图形');6. 水平镜像实验程序:I=imread('123.jpg');subplot(1,2,1);imshow(I);title('原始图像');M,N=size(I);g=zeros(M,N);for i=1:M for j=1:N; g(i,j)=I(i,N-j+1); endendsubplot(1,2,2);imshow(uint8(g);title('水平镜像');7. 垂直镜像实验程序:I=imread('123.jpg');subplot(1,2,1);imshow(I);title('原始图像');image=I(end:-1:1,:);subplot(1,2,2);imshow(image);8. 加噪求平均实验程序:(1)I=imread('eight.tif');J=imnoise(I,'gaussian',0,0.02);subplot(1,3,1),imshow(I);title('原图');subplot(1,3,2),imshow(J);title('加噪声');K=zeros(242,308);for i=1:100 J=imnoise(I,'gaussian',0,0.02); J1=im2double(J); K=K+J1;endK=K/100;subplot(1,3,3);imshow(K);title('平滑图'); (2)%导入图像的同时将图像分为行和列元素I,M=imread('123.jpg');%对图像进行加噪声J=imnoise(I,'gaussian',0,0.02);%显示图像subplot(1,3,1),imshow(I,M),title('原始图像');subplot(1,3,2),imshow(J,M),title('加噪图像');%创建与原图像一样维数的全0矩阵J1=im2double(J);K=ones(size(J1);%循环100对图像加噪声然后累加for i=1:1:100 J=imnoise(I,'gaussian',0,0.02); J1=im2double(J); K=K+J1;end%求图像的平均K=K/100; %显示处理过的图像subplot(1,3,3),imshow(K),title('平滑图像');四、 实验中遇到的问题水平变换、垂直变换时彩色图片不能按照要求进行变换