当前位置:文档之家› 数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MA TLAB图像处理工具箱;2. 掌握MA TLAB的基本应用方法;3. 掌握MA TLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。

二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。

2. 运行图像处理程序,并保存处理结果图像。

三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。

二、实验原理1. 初始坐标为(,)x y 的点经过平移00(,)x y ,坐标变为(',')x y ,两点之间的关系为:00''x x x y y y =+⎧⎨=+⎩,以矩阵形式表示为: 00'10'0110011x x x y y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:'100'01010011x x y y -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦'100'01010011x x y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦3. 图像缩小和放大变换矩阵相同: '00'0010011X yx S x y S y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦当1x S ≤,1y S ≤时,图像缩小;当1x S ≥,1y S ≥时,图像放大。

4. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定 角度。

其变换矩阵为:'cos sin 0'sin cos 010011x x y y θθθθ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点旋转,则先要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。

三、实验内容1. 启动MA TLAB 程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作。

2.运行图像处理程序,并保存处理结果图像。

四、源代码及实验效果1.平移I=imread('circuit.tif');subplot(121),imshow(I);title('before');I=double(I);M=zeros(size(I));N=size(I);x=10;y=10;M(x+1:N(1),y+1:N(2))=I(1:N(1)-x,1:N(2)-y); subplot(122),imshow(uint8(M));title('after');2.水平垂直镜像I=imread('pout.tif');subplot(131),imshow(I);title('before');I=double(I);A=zeros(size(I));B=zeros(size(I));M=size(I);A(1:M(1),1:M(2))=I(M(1):-1:1,1:M(2)); B(1:M(1),1:M(2))=I(1:M(1),M(2):-1:1); subplot(132),imshow(uint8(A));title('竖直');subplot(133),imshow(uint8(B));title('水平');3.缩放I=imread('pout.tif');subplot(131),imshow(I);title('before');I=double(I);A=zeros(size(I));B=zeros(size(I));[m,n]=size(I);x=1.8;y=1.8;x2=0.85;y2=0.85;for i=1:mfor j=1:ni1=round(i*x);j1=round(j*y);i2=round(i*x2);j2=round(j*y2);if(j1>=0)&&(i1>=0)&&(i1<=m)&&(j1<=n) A(i,j)=I(i1,j1);endif(j2>=0)&&(i2>=0)&&(i2<=m)&&(j2<=n) B(i,j)=I(i2,j2);endendendsubplot(132),imshow(uint8(A));title('small');subplot(133),imshow(uint8(B));title('big');4.旋转jiao=50;M=imread('cameraman.tif');imshow(M);[h w]=size(M);theta=jiao/180*pi;rot=[cos(theta) -sin(theta) 0;sin(theta) cos(theta) 0;0 0 1]; %建立变换矩阵pix1=[1 1 1]*rot; %变后左上pix2=[1 w 1]*rot; %变后右上pix3=[h 1 1]*rot; %变后左下pix4=[h w 1]*rot; %变后右下height=round(max([abs(pix1(1)-pix4(1))+0.5abs(pix2(1)-pix3(1))+0.5])); %新宽width=round(max([abs(pix1(2)-pix4(2))+0.5abs(pix2(2)-pix3(2))+0.5])); %新高N=zeros(height,width);chao_y=abs(min([pix1(1) pix2(1) pix3(1) pix4(1)])); %y负轴超量chao_x=abs(min([pix1(2) pix2(2) pix3(2) pix4(2)])); %x负轴超量for i=1-chao_y:height-chao_yfor j=1-chao_x:width-chao_xpix=[i j 1]/rot; %用变换后图像的点的坐标去寻找原图像点的坐标,float_Y=pix(1)-floor(pix(1)); %向下舍入float_X=pix(2)-floor(pix(2));if pix(1)>=1 && pix(2)>=1 && pix(1) <= h && pix(2) <= wpix_up_left=[floor(pix(1)) floor(pix(2))]; %四个相邻的点pix_up_right=[floor(pix(1)) ceil(pix(2))];pix_down_left=[ceil(pix(1)) floor(pix(2))];pix_down_right=[ceil(pix(1)) ceil(pix(2))];value_up_left=(1-float_X)*(1-float_Y); %周围四个点权重value_up_right=float_X*(1-float_Y);value_down_left=(1-float_X)*float_Y;value_down_right=float_X*float_Y;N(i+chao_y,j+chao_x)=value_up_left*M(pix_up_left(1),pix_up_left(2))+ ...value_up_right*M(pix_up_right(1),pix_up_right(2))+ ...value_down_left*M(pix_down_left(1),pix_down_left(2))+ ...value_down_right*M(pix_down_right(1),pix_down_right(2));endendendfigure,imshow(uint8(N))实验三 图像增强实验一、实验目的1. 掌握基本的图像增强方法,观察图像增强的效果,加深对灰度直方图的理解。

相关主题