- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab图像几何变换答案
实验四:图像几何变换(编程 报告)
实验目的
学习几种常见的图像几何变换,并通过实验体会几何变换的效果;
掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编程实现
掌握matlab编程环境中基本的图像处理函数
掌握图像的复合变换
涉及知识点
图像几何变换不改变图像像素的值,只改变像素所在的几何位置
图像裁剪imcrop函数,语法格式为:
B=imcrop(A);交互式用鼠标选取区域进行剪切
B=imcrop(A,[left top right bottom]);针对指定的区域[left top right bottom]进行剪切
图像缩放imresize函数,语法格式为:B = imresize(A,m,method)这里参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三次插值),默认为nearest。B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是缩小)。
图像旋转imrotate函数,语法格式为:
B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。
实验内容
将图像hehua.bmp裁剪成200X200大小
制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色填充
利用剪切图像函数制作动画
将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显示图像。
将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。
将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果
实验环境
Windows下matlab编程环境
实验源代码及结果
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);
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
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
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倍);
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度);
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))
文档评论(0)