matlab图像代数运算,实验报告二matlab图像代数运算和几何变换

41528d3028836879cd698677c3999917.gif实验报告二matlab图像代数运算和几何变换

实验二 Matlab 图像代数运算和几何变换一、实验目的1、掌握不同图像类型的转换2、掌握图像代数运算和几何变换的方法;3、掌握灰度级插值法的实验方法。二、实验内容1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither) (p69-73) ;2、练习课本 6.3.2(p139-p143)图像代数运算的内容;3、练习图像平移 (p148),图像比例变换(p153) ,图像旋转(p156) ,图像镜像变换(p158) ,图像切割(p160)Matlab 实现例题;4、练习灰度级插值法(p171) 。三、实验步骤和结果1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(1)mat2gray()函数I=imread( rice.png );>> J=filter2(fspecial( sobel ),I);>> K=mat2gray(J);>> imshow(I);>> figure,imshow(K)(2) 、grayslice()函数>> I=imread( snowflakes.png );>> X=grayslice(I,16);>> imview(I)imview(X,jet(16))(3) 、rgb2ind()函数> RGB=imread( peppers.png );>> imshow(RGB);>> figure,imshow(RGB)>> [X,map]=rgb2ind(RGB,128);>> figure,imshow(X,map)(4) 、im2bw()函数>> load trees>> BW=im2bw(X,map,0.4);>> figure,imshow(X,map)>> figure,imshow(BW)(5) 、ind2gray()函数load trees>> I=ind2gray(X,map);>> figure,imshow(X,map)>> figure,imshow(I)(6) 、dither()函数>> RGB=imread( peppers.png );>> [X,map]=rgb2ind(RGB,256);>> I=dither(RGB,map);>> BW=dither(I);>> imshow(RGB,map);>> figure,imshow(RGB,map);>> figure,imshow(BW)Result:(1)转换后图像 (2)索引色图像(3)索引色图像 (4)索引色图像 (4)二值化后的图像(5)转换后的灰度图像 (6)索引色图像 (6)抖动转换图像2、练习课本 6.3.2(p139-p143)图像代数运算的内容(1)加法运算I=imread( rice.png );>> figure(1),imshow(I,[])>> I2=imread( cameraman.tif )>> figure(2),imshow(I2,[])>> K=imadd(I,I2, uint16 );>> figure(3),imshow(K,[])>> I=imread( lena.bmp );>> I2=imadd(I,50);>> figure(1),imshow(I)>> figure(2),imshow(I2)(2) 、减法运算>> I=imread( rice.png );>> I2=imread( cameraman.tif );>> I3=imsubtract(I,I2);>> figure,imview(I3)(3)乘法>> I2=immultiply(I,0.5);>> figure,imshow(I)>> figure,imshow(I2)>> I3=immultiply(I,1.5);>> figure,imshow(I3)>> I4=imdivide(I,0.5);>> figure,imshow(I4)>> I5=imdivide(I,1);>> figure,imshow(I5)Result:(1)加法运算后的图像 (1)加入常数后的图像 (2)减法运算(3)乘以 0.5后的图像 乘以 1后的图像 除以 0.5后的图像 除以 1后的图像3、练习图像平移 (p148),图像比例变换(p153) ,图像旋转(p156) ,图像镜像变换(p158) ,图像切割(p160)Matlab 实现例题;(a)图像平移>> I=imread( trees.tif );>> figure,imshow(I)>> I=double(I);>> I_movesult=zeros(size(I));>> H=size(I);>> Move_x=50;>> Move_y=50;>> I_movesult(Move_x+1:H(1),Move_y+1:H(2))=I(1:H(1)-Move_x,1:H(2)-Move_y);>> figure,imshow(uint8(I_movesult))(b)图像比例变换J=imread( trees.tif );>> figure,imshow(J);>> X1=imresize(J,2);>> X2=imresize(J,0.5);>> figure,imshow(X1) >> figure,imshow(X2)(C)图像旋转变换>> I=imread( peppers.png );>> figure,imshow(I)>> X1=imrotate(I,30, nearest );>> figure,imshow(uint8(X1))>> X2=imrotate(I,45, nearest );>> figure,imshow(uint8(X2))>> X3=imrotate(I,60, nearest );>> figure,imshow(uint8(X3))>> X4=imrotate(I,90, nearest );>> figure,imshow(uint8(X4))(d)图像镜像变换>> I=imread( forest.tif );>> I=double(I);>> figure,imshow(uint8(I));>> H=size(I);>> figure(2),>> I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2));>> imshow(uint8(I2));>> figure,imshow(uint8(I2));>> I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1);>> figure,imshow(uint8(I3));>> I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2)

你可能感兴趣的:(matlab图像代数运算)