matlab 图像几何变换+答案
matlab图像的几何变换

实验三 图像的几何运算一、实验目的1、 理解几何运算的基本概念与定义;2、 掌握在MA TLAB 中进行插值的方法3、 运用MATLAB 语言进行图像的插值缩放和插值旋转。
二、实验原理插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的采样点建立一个连续函数来逼近真实的曲线,用这个重建的函数便可以求出任意位置的函数值。
最近邻插值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。
该算法的数学表示为:()()k f x f x = 如果1111()()22k k k k x x x x x -++<<+ 最近邻插值是工具箱函数默认使用的插值方法,而且这种插值方法的运算量非常小。
不过,当图像中包含像素之间灰度级变化的细微结构时,最近邻插值法会在图像中产生人工的痕迹。
双线性插值法的输出像素值是它在输入图像中2×2领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。
设''''1,1,,m i m n j n a i m b j n <<+<<+=-=-,'i 和'j 是要插值点的坐标,则双线性插值的公式为:''(,)(1)(1)(,)(1)(1,)(1)(,1)(1,1)g i j a b g m n a b g m n a bg m n abg m n =--+-++-++++ 双三次插值的插值核为三次函数,其插值邻域的大小为4×4。
它的插值效果比较好,但相应的计算量也比较大,在这里不做讨论。
1、图像的缩放imresize 函数的语法格式为:B = imresize(A, m, method)2、图像的旋转imrotate 的语法格式为:B = imrotate(A, angle, method)三、实验内容及要求1. 读出girl.bmp 图像并显示。
基于MATLAB图像处理作业及解答

实验三图像几何变换一、实验目的1.掌握图像的几何变换,其中包括裁剪、水平镜像、垂直镜像、转置、缩放、旋转的原理。
2. 使用maketform,imtransform,imresize,imrotate函数完成不同的几何变换。
3. 了解movie, getframe,rgb2gray函数。
二、实验内容1.运用imcrop函数分别获取earth.jpg图像的不同部分且在同一图形窗口显示(图像被均匀分成2*2块)。
2.使用函数maketform和imtransform,完成对earth.jpg图像的水平、垂直和转置的变化。
3.使用imresize函数对earth.jpg图像进行1.5倍和0.5倍的缩放变化,且显示变化后图像。
4.使用imrotate函数对earth.jpg图像进行顺时针45度和逆时针45度的变化,且显示变化后图像。
5.制作教材31页三幅图像,且验证该实例程序。
6.验证教材33页例1-20和例1-22三、实验步骤(解答)第一题解答:I=imread('C:\earth.jpg');I1=imcrop(I,[0 0 255 127]);I2=imcrop(I,[256 128 255 127]);I3=imcrop(I,[256 0 255 127]);I4=imcrop(I,[0 128 255 127]);subplot(2,2,1);imshow(I1);subplot(2,2,4);imshow(I2);subplot(2,2,2);imshow(I3);subplot(2,2,3);imshow(I4);第二题解答:A=imread('C:\earth.jpg');[height,width,dim]=size(A);tform=maketform('affine',[-1 0 0;0 1 0;width 0 1]);B=imtransform(A,tform,'nearest');tform2=maketform('affine',[1 0 0;0 -1 0;0 height 1]);C=imtransform(A,tform2,'nearest');subplot(1,3,1),imshow(A);title('Ô-ͼÏñ');subplot(1,3,2),imshow(B);title('ˮƽ¾µÏñ');subplot(1,3,3),imshow(C);title('´¹Ö±¾µÏñ');第三题解答:c=imread('C:\earth.jpg');c2=imresize(c,1.5);c3=imresize(c,0.5);figure,imshow(c2);figure,imshow(c3);第四题解答:A=imread('C:\earth.jpg');B=imrotate(A,45,'nearest','crop');C=imrotate(A,-45,'nearest','crop');subplot(1,3,1),imshow(A);title('Ô-ͼÏñ');subplot(1,3,2),imshow(B);title('ÄæÊ±ÕëÐýת45¶È'); subplot(1,3,3),imshow(C);title('˳ʱÕëÐýת45¶È');第五题解答:for i=1:3k=int2str(i);k1=strcat('c:\',k,'.png');a1=imread(k1);image(a1);m(:,i)=getframe;endmovie(m,10)第六题解答:1-20I=imread('C:\earth.jpg');I1=I(:,:,1);s=size(I1);a=ones(s(1),s(2));I2=double(I1);for i=1:250I2(:,:)=I2(:,:)-a;I(:,:,1)=I2(:,:);imshow(I);end1-22I=imread('C:\earth.jpg');I1=rgb2gray(I);s=size(I1);a=ones(s(1),s(2));I2=double(I1);for i=1:30I2(:,:)=I2(:,:)-a; imshow(I2);end。
Matlab期末复习提纲(答案)

1、图像的最小基本单位:像素2、根据每个像素所代表信息的不同,可将图像分为二值图像、灰度图像、RGB图像以及索引图象、多帧图像3、图像的空间分辨率是指图像中每单位长度所包含的像素或点的数目,常以像素/英寸为单位表示4、当高分辨率下的图像以低分辨率表示时,在同等的显示或者打印输出条件下,图像的尺寸变小,细节变得不明显;而当将低分辨率的图像放大,则会导致图像的细节仍然模糊5、了解相邻像素的概念。
依据标准的不同,我们可以关注像素P的4邻域和8邻域6、常见的几种距离函数:(1)欧氏距离:即距离等于r的像素形成以P为圆心的圆(2) D4距离(街区距离):即距离等于r的像素形成以P为中心的菱形(3) D8距离(棋盘距离):距离等于r的像素形成以P为中心的方形7、表2.5 提取矩阵元素或子块的方法8、表2.11 图像格式转换函数9、读取图像文件:I=imread;显示图像:imshow(I)10、图像和直方图的关系:多对111、图像的点运算:线性变换,对数变换,伽马变换,阈值变换,直方图均衡化,直方图规定化。
12、伽玛变换又称指数变换或幂次变换,是另一种常用的灰度非线性变换。
●γ>1时,图像的高灰度区域对比度得到增强。
●γ<1时,图像的低灰度区域对比度得到增强。
●γ=1时,这一灰度变换是线性的,即不改变原图像。
15、图像平移的变换公式书P68则平移之后的点坐标(x1,y1)变为用矩阵表示为对变换矩阵求逆,可以得到逆变换即16、表4.1 合法值17、图像镜像的变换公式●水平镜像的变换关系为对矩阵求逆得到●竖直镜像变换关系可形式化地描述如下。
逆运算为18、空间域图像增强:图像平滑,图像锐化。
19、图像平滑(低通滤波器),包括平均平滑和高斯平滑,中值滤波 20、图像锐化(高通滤波器),包括梯度算子、拉普拉斯算子、高提升滤波和高斯-拉普拉斯变换21、例5.1中的w 提供了一种平均的加权模式,首先在以点(x ,y )为中心3×3邻域内的点都参与了决定在新图像g 中(x ,y )点像素值的运算;而且所有系数都为1,表示它们在参与决定g (x ,y )值的过程中贡献(权重)都相同;最后前面的系数是要保证整个模板元素和为1,这里应为1/9,这样就能让新图像同原始图像保持在一个灰度范围中(如[0,255])。
matlab 图像的几何变换与彩色处理

实验四、图像的几何变换与彩色处理一、实验目的1理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;2熟悉图像几何变换的MATLAB操作和基本功能3 掌握彩色图像处理的基本技术二、实验步骤1 启动MATLAB程序,读入图像并对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作%%%%%%平移>> flowerImg=imread('flower.jpg');>> se=translate(strel(1),[100 100]);>> img2=imdilate(flowerImg,se);>> subplot(1,2,1);>> imshow(flowerImg);>> subplot(1,2,2);>> imshow(img2);I1=imread('flower.jpg');I1=double(I1);H=size(I1);I2(1:H(1),1:H(2),1:H(3))=I1(H(1):-1:1,1:H(2),1:H(3)); I3(1:H(1),1:H(2),1:H(3))=I1(1:H(1),H(2):-1:1,1:H(3)); Subplot(2,2,1);Imshow(uint8(I1));Title('原图');Subplot(2,2,2);Imshow(uint8(I3));Title('水平镜像');Subplot(2,2,3);Imshow(uint8(I2));Title('垂直镜像');img1=imread('flower.jpg');figure,imshow(img1);%%%%%%缩放img2=imresize(img1,0.25);figure,imshow(img2);imwrite(img2,'a2.jpg');%%%%%%旋转img3=imrotate(img1,90); figure,imshow(img3); imwrite(img3,'a3.jpg');2 实验如下操作:(1)改变图像缩放比例f= imread('flower.jpg');T=[ 0.5 0 0; 0 0.5 0; 0 0 1];tform=maketform('affine',T);[g1,xdata1,ydata1]=imtransform(f,tform,'FillValue',255);T=[ 1 0 0; 0 1 0; 0 0 1];tform=maketform('affine',T);[g2,xdata2,ydata2]=imtransform(f,tform,'FillValue',255);T=[ 1.5 0 0; 0 1.5 0; 0 0 1];tform=maketform('affine',T);[g3,xdata3,ydata3]=imtransform(f,tform,'FillValue',255);hold onimshow(g3,'XData', xdata3, 'YData', ydata3)hold onimshow(g2,'XData', xdata2, 'YData', ydata2)hold onimshow(g1,'XData', xdata1, 'YData', ydata1)axis autoaxis on(2)改变图像的旋转角度,f= imread('flower.jpg');theta=3*pi/4;T=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; tform=maketform('affine',T);[g3,xdata3,ydata3]=imtransform(f,tform,'FillValue',255); theta=pi;T=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1]; tform=maketform('affine',T);[g4,xdata4,ydata4]=imtransform(f,tform,'FillValue',255); imshow(f);hold onimshow(g3,'XData', xdata3, 'YData', ydata3)hold onimshow(g4,'XData', xdata4, 'YData', ydata4)axis autoaxis on观察变换结果,要求把经过不同类型几何变换的图像和原图像在同一坐标系内显示输出(请参考课件或教材上的代码)3 读入一幅彩色图像,进行如下图像处理:(1)在RGB彩色空间中对图像进行模糊和锐化处理rgb= imread('flower.jpg');figure; imshow(rgb); title('原图');%平滑滤波r=rgb(:,:,1);g=rgb(:,:,2);b=rgb(:,:,3);m=fspecial('average',[8,8]);r_filtered=imfilter(r,m);g_filtered=imfilter(g,m);b_filtered=imfilter(b,m);rgb_filtered=cat(3,r_filtered,g_filtered,b_filtered);figure; imshow(rgb_filtered); title('模糊后');imwrite(rgb_filtered, 'RGB彩色空间模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(rgb,lapMatrix,'replicate');i_sharped=imsubtract(rgb,i_tmp);figure; imshow(i_sharped); title('锐化后'); imwrite(i_sharped, 'RGB彩色空间锐化后.jpg');(2)在HSI彩色空间中,对H分量图像进行模糊和锐化处理,转换回RGB格式并观察效果(3)在HSI彩色空间中,对S分量图像进行模糊和锐化处理,转换回RGB格式并观察效果(4)在HSI彩色空间中,对I分量图像进行模糊和锐化处理,转换回RGB格式并观察效果fc = imread('flower.jpg');h = rgb2hsi(fc);H = h (:,:,1);S = h (:,:,2);I = h (:,:,3);subplot(3,3,1);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);h_filtered=imfilter(H,m);img_h_filtered = cat(3,h_filtered,S,I);rgb_h_filtered = hsi2rgb(img_h_filtered);subplot(3,3,2);imshow(rgb_h_filtered); title('H分量模糊后');imwrite(rgb_h_filtered, 'H分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(H,lapMatrix,'replicate');H_sharped=imsubtract(H,i_tmp);img_h_sharped = cat(3,H_sharped,S,I);rgb_h_sharped = hsi2rgb(img_h_sharped);subplot(3,3,3); imshow(rgb_h_sharped); title('H分量锐化后'); imwrite(rgb_h_sharped, 'H分量锐化后.jpg');subplot(3,3,4);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);s_filtered=imfilter(S,m);img_s_filtered = cat(3,H,s_filtered,I);rgb_s_filtered = hsi2rgb(img_s_filtered);subplot(3,3,5);imshow(rgb_s_filtered); title('S分量模糊后'); imwrite(rgb_s_filtered, 'S分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(S,lapMatrix,'replicate');s_sharped=imsubtract(S,i_tmp);img_s_sharped = cat(3,H,s_sharped,I);rgb_s_sharped = hsi2rgb(img_s_sharped);subplot(3,3,6); imshow(rgb_s_sharped); title('S分量锐化后'); imwrite(rgb_s_sharped, 'S分量锐化后.jpg');subplot(3,3,7);imshow(fc); title('原图');%平滑滤波m=fspecial('average',[8,8]);i_filtered=imfilter(I,m);img_i_filtered = cat(3,H,S,i_filtered);rgb_i_filtered = hsi2rgb(img_i_filtered);subplot(3,3,8);imshow(rgb_i_filtered); title('I分量模糊后'); imwrite(rgb_i_filtered, 'I分量模糊后.jpg');%拉普拉斯lapMatrix=[1 1 1;1 -8 1;1 1 1];i_tmp=imfilter(I,lapMatrix,'replicate');i_sharped=imsubtract(I,i_tmp);img_i_sharped = cat(3,H,S,i_sharped);rgb_i_sharped = hsi2rgb(img_i_sharped);subplot(3,3,9); imshow(rgb_i_sharped); title('I分量锐化后'); imwrite(rgb_i_sharped, 'I分量锐化后.jpg');由图看出I分量图像进行模糊和锐化处理的效果最好。
数字图像处理及应用(MATLAB)第1章习题答案

第一章:习题与思考题参考答案1-1 什么是数字图像? 数字图像处理有哪些特点?数字图像是将连续的模拟图像经过离散化处理后变成计算机能够辨识的点阵图像。
数字图像处理具有以下特点:(1)处理精度高,再现性好。
(2)易于控制处理效果。
(3)处理的多样性。
(4)数字图像中各个像素间的相关性大,压缩的潜力很大。
(5)图像数据量庞大。
(6) 占用的频带较宽。
(7) 图像质量评价受主观因素的影响。
(8)图像处理技术综合性强。
1-2 数字图像处理的目的及主要内容。
一般而言,对图像进行处理主要有以下三个方面的目的(1) 提高图像的视感质量,以达到赏心悦目的目的。
(2) 提取图像中所包含的某些特征或特殊信息,以便于计算机分析。
(3) 对图像数据进行变换、编码和压缩,以便于图像的存储和传输。
数字图像处理的主要研究内容:根据其主要的处理流程与处理目标大致可以分为图像信息的描述、图像信息的处理、图像信息的分析、图像信息的编码以及图像信息的显示等几个方面。
如:图像数字化、图像增强、图像几何变换、图像复原、图像重建、图像隐藏、图像正交变换、图像编码、图像分析等。
1-3 数字图像处理的主要应用图像处理技术广泛用于众多的科学与工程领域,主要有:(1)生物医学领域中的应用(2)工业应用(3)遥感航天中的应用(4)军事、公安领域中的应用(5)其他应用,例如:图像的远距离通信;多媒体计算机系统及应用;服装试穿显示;办公自动化、现场视频管理1-4 在理想情况下获得一幅数字图像时,采样和量化间隔越小,图像的画面效果越好,当一幅图像的数据量被限定在一个范围内时,如何考虑图像的采样和量化使得图像的质量尽可能好。
一般,当限定数字图像的大小时, 为了得到质量较好的图像可采用如下原则: (1)对缓变的图像,应该细量化,粗采样,以避免假轮廓。
(2)对细节丰富的图像,应细采样,粗量化,以避免模糊(混叠)。
1-5 想想在你的工作和生活中,遇见过哪些数字化设备?它们的主要用途是什么?主要有以下几种数字化设备:(1) 图像采集卡通常图像采集卡安装于计算机主板扩展槽中,通过主机发出指令,将某一帧图像静止在存储通道中,即采集或捕获一帧图像,然后可对图像进行处理或存盘。
matlab图像几何变换和图像增强

一.图像几何变化(1)放大,缩小,旋转程序:I=imread('111.jpg');J=imresize(I,1.5);L=imresize(I,0.75);K=imrotate(I,35,'bilinear');subplot(221),subimage(I); title('原图像');subplot(222),subimage(J); title('放大后图像');subplot(223),subimage(L); title('缩小后图像');subplot(224),subimage(K);title('旋转后图像');二.图像频域变换(1)傅里叶变换真彩图像灰度图像傅里叶变换谱程序:I=imread('111.jpg');figure(1);imshow(I);B=rgb2gray(I);figure(2);imshow(B)D=fftshift(fft2(B));figure(3);imshow(log(abs(D)),[ ]);(2)离散余弦变换真彩图灰度图进行离散余弦变换后程序:RGB=imread('111.jpg');figure(1);imshow(RGB);G=rgb2gray(RGB);figure(2);imshow(G);DCT=dct2(G);figure(3);imshow(log(abs(DCT)),[]);三.图像增强:(1)指数变换程序:f=imread('111.jpg')f=double(f);g=(2^2*(f-1))-1;f=uint8(f);g=uint8(g);subplot(1,2,1),subimage(f);subplot(1,2,2),subimage(g);(2)直方图均衡程序:I=imread('111.jpg');I=rgb2gray(I);figuresubplot(221);imshow(I);subplot(222);imhist(I)I1=histeq(I);figure;subplot(221);imshow(I1)subplot(222);imhist(I1)(3)空域滤波增强锐化滤波(Roberts算子Sobel算子拉普拉斯算子)程序:I=imread('000.tif');J1=edge(I,'roberts'); %Roberts算子figure;imshow(uint8(I));title('原图');figure;subplot(221);imshow(J1);title('Roberts算子锐化'); J2=fspecial('Sobel'); %Sobel算子J2=J2';TJ1=filter2(J2,I);J2=J2';TJ2=filter2(J2,I);subplot(222),imshow(TJ1,[]),title('垂直模板'); subplot(223),imshow(TJ2,[]),title('水平模板');f=fspecial('laplacian'); %拉普拉斯算子J3=imfilter(I,f);subplot(224),imshow(J3);title('拉普拉斯算子');平滑滤波及中值滤波程序:I=imread('000.tif');J=imnoise(I,'salt & pepper',0.02);subplot(221),imshow(I);title('原图像');subplot(222),imshow(J);title('添加椒盐噪声图像');k1=filter2(fspecial('average',3),J); %进行3*3模板平滑滤波k2=medfilt2(J); %进行3*3模板中值滤波subplot(223),imshow(uint8(k1));title('3*3模板平滑滤波');subplot(224),imshow(k2);title('3*3模板中值滤波');(4)频域滤波增强低通滤波程序:I=imread('000.tif');J=imnoise(I,'salt & pepper',0.02);subplot(121),imshow(J);title('添加椒盐噪声图像');J=double(J);f=fft2(J); %采用傅里叶变换g=fftshift(f) %数据矩阵平衡[M,N]=size(f);n=3;d0=20n1=floor(M/2)n2=floor(N/2)for i=1:M %进行低通滤波for j=1:Nd=sqrt((i-n1)^2+(j-n2)^2)h=1/(1+(d/d0)^(2*n));g1(i,j)=h*g(i,j);endendg1=ifftshift(g1);g1=uint8(real(ifft2(g1)));subplot(122);imshow(g1);title('低通滤波后的图像'); %显示低通滤波结果 高通滤波程序:I=imread('000.tif');J=imnoise(I,'salt & pepper',0.02);subplot(221),imshow(J);title('添加椒盐噪声图像');J=double(J);f=fft2(J); %采用傅里叶变换[M,N]=size(f);n=2;d0=20n1=floor(M/2)n2=floor(N/2)for i=1:M %进行巴特沃斯高通滤波及巴特沃斯高通加强滤波for j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d==0;h1=0;h2=0.5;elseh1=1/(1+(d0/d)^(2*n));h2=1/(1+(d0/d)^(2*n))+0.5;endgg1(i,j)=h1*g(i,j);gg2(i,j)=h2*g(i,j);endendgg1=ifftshift(gg1);gg1=uint8(real(ifft2(gg1)));subplot(222);imshow(gg1);title('巴特沃斯高通滤波后的图像'); %显示结果gg2=ifftshift(gg2);gg2=uint8(real(ifft2(gg2)));subplot(223);imshow(gg2);title('巴特沃斯高通滤波加强后的图像');同态滤波程序:J=imread('000.tif');subplot(121);imshow(J);title('原图像');J=double(J);f=fft2(J); %采用傅里叶变换[M,N]=size(f);d0=10;r1=0.5;rh=2c=4;n1=floor(M/2);n2=floor(N/2);for i=1:M %进行同态滤波for j=1:Nd=sqrt((i-n1)^2+(j-n2)^2)h=(rh-r1)*(1-exp(-c*(d.^2/d0.^2)))+r1;g(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(122);imshow(g);title('同态滤波后的图像'); %显示同态滤波结果。
matlab数字图像处理图像运算+答案

matlab数字图像处理图像运算+答案实验⼆:图像运算⼀、实验⽬的掌握MATLAB语⾔中图像数据的读取、显⽰与保存⽅法;掌握统计图像灰度直⽅图的⽅法理解直⽅图均衡的原理和作⽤,掌握图像直⽅图均衡化的⽅法理解图像点运算、代数运算、⼏何运算的基本定义和常见⽅法进⼀步熟悉了解MATLAB语⾔的应⽤⼆、知识要点1.数据类型及图像类型间的基本转换函数数据类转换:B = data_class_name(A);2.imhist(H);%显⽰a的直⽅图histeq(H); %将图像a进⾏直⽅图均衡化adapthisteq(H); %将图像a进⾏直⽅图均衡化3.图像的点运算点运算是通过对图像中每个像素值进⾏计算,改善图像显⽰效果的操作,也称对⽐度增强或对⽐度拉伸或灰度变换。
可以表⽰为B(x,y)=f(A(x,y)).进⾏逐点运算,输⼊映射为输出,不改变图像像素的空间关系。
Y=aX+b %线性点运算Y=X+aX(max(X)-X) %⾮线性点运算4.代数运算代数运算是指对两幅输⼊图像进⾏点对点的加、减、乘或除运算⽽得到输出图像的运算。
四种图像代数运算的数学表达式如下:C(i,j)=A(i,j)+B(i,j) C=imadd(A,B)C(i,j)=A(i,j)-B(i,j) C=imsubtract(A,B);C(i,j)=A(i,j)*B(i,j) C=immultiply(A,B)C(i,j)=A(i,j)/B(i,j) C=imdivide(A,B)5.图像加噪函数imnoise(参阅matlab help)imnoise的语法格式为J = imnoise(I,type)J = imnoise(I,type,parameters)其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。
参数type 和parameters⽤于确定噪声的类型和相应的参数。
J = imnoise(I,'gaussian',m,v) %加⼊均值m,⽅差为v的⾼斯噪声,m默认值0,v默认值0.01J = imnoise(I,'poisson') %加⼊泊松分布的噪声J = imnoise(I,'salt & pepper',d)%加⼊密度为d的椒盐噪声,d的默认值为0.05 J = imnoise(I,'speckle',v) %加⼊均值0,⽅差为v的乘性噪声三、实验内容1、将给定的Couple.bmp图像⽂件读出并显⽰,显⽰其灰度直⽅图,分别⽤histeq、adapthiateq函数将其直⽅图均衡化,观察均衡后的图像及其直⽅图。
4第四章图像的几何变换详述

j
'
i
sin
j
cos
• 这个计算公式计算出的值为小数,而坐标值为正整数。 • 计算结果中的新坐标值可能超过原图像所在的空间范围。
图像旋转时,为了避免信息的丢失,应当扩 大画布,并将旋转后的图像平移到新画布上。
图像的旋转板例书:题计算像素(1,1)
的旋转新坐标
30
i ' 0.866i 0.5 j
例题: 缩小6×6的图像,设k1=2/3, k2=3/4;
原图像f(i, j)=f i j
新图像大小:k1M×k2N =4×5
f11 f12 f13 f14 f15 ff1166
f21 f22 f23 f24 f25 ff2266 采样间隔: Δi=3/2, 新图像g(i, j)
f31 f32 f33 f34 f35 ff3366 Δj=4/3
subplot(2,2,1); % 将当前图像窗口划分为2行2列,即
4个子窗口,要显示的内容在第一个
子窗口中显示
例 如:
关于图像的函数和命令 (3)
im2double(F); %将图象数组F转换成double精度类型 im2uint8(F); %将图象数组F转换成unit8类型 im2uint16(F); %将图象数组F转换成unit16类型
根据:g(i,j)=f(Δi×i, Δj×j) 对于:i=1,j=1 → g(1,1)=f (1×3/2, 1×4/3)=f 21 对于:i=2,j=1 → g(2,1)=f (2×3/2, 1×4/3)=f 31
……………………………
注意:不按比例 缩小会导致几何 畸变。
二、基于局部均值的的图像缩小方法
该方法通过对原图像的均匀采样该方法通过对原图像的均匀采样等间隔等间隔地选取一部分像素地选取一部分像素从而获得小尺寸图像的数据从而获得小尺寸图像的数据并且尽量保持原有图像特征不丢失并且尽量保持原有图像特征不丢失
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四:图像几何变换(编程报告)
一、实验目的
(1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果;
(2)掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编
程实现
(3)掌握matlab编程环境中基本的图像处理函数
(4)掌握图像的复合变换
二、涉及知识点
(1)图像几何变换不改变图像像素的值,只改变像素所在的几何位置
(2)图像裁剪imcrop函数,语法格式为:
B=imcrop(A);交互式用鼠标选取区域进行剪切
B=imcrop(A,[left top right bottom]);针对指定的区域[left top right bottom]进行剪切
(3)图像缩放imresize函数,语法格式为:
B = imresize(A,m,method)
这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。
B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是
缩小)。
(4)图像旋转imrotate函数,语法格式为:
B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。
三、实验内容
(1)将图像hehua.bmp裁剪成200X200大小
(2)制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色
填充
(3)利用剪切图像函数制作动画
(4)将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显
示图像。
(5)将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。
(6)将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果
四、实验环境
Windows下matlab编程环境
五、实验源代码及结果
1.f=imread('hehua.bmp');
figure;
imshow(f);
title('原图');
f2=imcrop(f,[50,50,250,250]);
figure;
imshow(uint8(f2));
title('裁剪后');
imwrite(f2,'d:/5/hehua1.bmp');
2.f=imread('hehua1.bmp');
[m,n,x]=size(f);
f=double(f);
for i=1:10
mx=10*i;
my=10*i;
g=zeros(m,n,x)+255;
%g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my ,1:x);
g(1:m-mx,1:n-my ,1:x)=f(mx+1:m,my+1:n,1:x);
figure;
imshow(uint8(g));
end
3.f=imread('hehua1.bmp');
[m,n]=size(f);
for i=50:10:200
m=i;
n=i;
f2=imcrop(f,[n,n,m,m]);
figure;
imshow(uint8(f2));
end
4.f=imread('hehua1.bmp');
figure;
imshow(f);
title('原图');
f=double(f);
f1=imresize(f,1.5,'bilinear');
figure;
imshow(uint8(f1));
title('放大1.5倍');
f2=imresize(f,0.8,'bilinear');
figure;
imshow(uint8(f2));
title('缩小0.8倍');
5.f=imread('hehua1.bmp');
subplot(131);
imshow(f);
title('原图');
[m,n,x]=size(f);
g=zeros(m,n,x);
for i=1:m
for j=1:n
for k=1:x
g(i,j,k)=f(i,n-j+1,k);
end
end
end
subplot(132);
imshow(uint8(g));
title('水平镜像');
f2=imrotate(g,45,'crop');
subplot(133);
imshow(uint8(f2));
title('顺时针旋转45度');
6.f=imread('hehua1.bmp');
subplot(131);
imshow(f);
title('原图');
h=size(f);
f1=zeros(h(1)+round(h(2)*tan(pi/6)),h(2),h(3));
for m=1:h(1)
for n=1:h(2)
f1(m+round(n*tan(pi/6)),n,1:h(3))=f(m,n,1:h(3));
end
end
subplot(132);
imshow(uint8(f1));
title('水平30度');
f2=zeros(h(1),h(2)+round(h(2)*tan(pi/4)),h(3));
for m=1:h(1)
for n=1:h(2)
f2(m,n+round(m*tan(pi/4)),1:h(3))=f(m,n,1:h(3));
end
end
subplot(133);
imshow(uint8(f2));
title('垂直45度');
六、心得体会。