(2014~ 2015 学年度 第 二 学期) if (f>=0)&(f<=f1); %找出灰度级范围在0~60的元素
g(i,j)=r1*f+b1; %灰度级在0~30的进行灰度变换 班级: 学号 : 姓名: 同组试验者: elseif (f>=f1)&(f<=f2) %找出灰度级范围在60~180的元素 g(i,j)=r2*f+b2; %灰度级在60~180的进行灰度变换 实验名称: 图像空域变换 日期: 2015.04.22 elseif (f>=f2)&(f<=f3) %找出灰度级范围在180~255的元素 g(i,j)=r3*f+b3; %灰度级在180~255的进行灰度变换 一、实验目的: end 1.掌握图像的线性和非线性变换和直方图均衡化的原理和应用; end 2. 理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用; end 3.了解噪声模型及对图像添加噪声的基本方法。 figure,imshow(mat2gray(g)) %函数mat2gray( )将数据矩阵转换成灰度图像 二、实验原理 1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。 2.直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像,按照图像概率密度函数PDF的定义。 三、实验内容 1.灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。 将一幅 256X256的灰度图像,将0~60灰度级压缩到0~30范围内,压缩比1/2;60~180的灰度级扩大到30~240, 比率为 190/120;将180~255灰度级压缩到240~255范围内,压缩比为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);%求0~60灰度级范围内的压缩比 b1=g0-r1*f0; r2=(g2-g1)/(f2-f1);%求60~180灰度级范围内的压缩比 b2=g1-r2*f1; r3=(g3-g2)/(f3-f2);%求180~255灰度级范围内的压缩比 b3=g2-r3*f2; [m,n]=size(X1); %求矩阵的行数m,列数n X2=double(X1); %将数据类型转换为双精度型
实 验 报 告
%变换矩阵中的每个元素 for i=1:m
第 页(共 3 页)
2.对数变换 实验程序:
I=imread('peppers.png');%读入图像 figure;imshow(I);
F=fft2(im2double(I));%FFT F=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,) figure,imhist(J,)
第 页(共 3 页)
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 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); end end subplot(1,2,2);imshow(uint8(g));title('水平镜像'); 第 页(共 3 页) 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; end K=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对图像加噪声然后累加 第 页(共 3 页) 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('平滑图像'); 四、实验中遇到的问题 水平变换、垂直变换时彩色图片不能按照要求进行变换 第 页(共 3 页) 第 页(共 3 页) =====WORD完整版----可编辑----专业资料分享===== ----完整版学习资料分享---- 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务