%%%%zoom,>1放大,<1缩小%%%%
%先处理横向缩放,产生pic_temp0
%再处理纵向缩放,产生pic_temp1,生成最终图形
%缩小采用临近点均值算法,放大采用线性插值
clear;
clc;
tic
m=2.0;%水平方向伸缩系数
n=2.0;%竖直方向伸缩系数
pic_init=imread('E:\MATLAB\zoom\example.jpg');
temp0=size(pic_init);
a=temp0(2);
b=temp0(1);
xm=a*m;
ym=b*n;
pic_out=zeros(uint16(ym),uint16(xm),3);
%先处理横向缩放,输出文件为pic_temp0
if(m<=1)%横向缩小
pic_temp0=zeros(uint16(b),uint16(xm),3);%横向缩放存为pic_temp0
for y0=1:1:b
for x0=1:1:xm
temp1=zeros(1,1,3);
for x0temp=uint16(1+((x0-1)/m)):1:uint16(x0/m)%缩小求和
temp1=temp1+double(pic_init(y0,x0temp,:));
end
length=double((uint16(x0/m)-uint16(1+((x0-1)/m)))+1);
temp1=temp1/length;%缩小取平均
pic_temp0(y0,x0,:)=temp1;
end
end
else%(m>1)横向放大
pic_temp0=zeros(uint16(b),uint16(xm),3);
for y0=1:1:b
for x0=1:1:xm
temp1=zeros(1,1,3);
locate=floor((x0-1)/m)+1;%被放大的点对应原图左侧最近点坐标
rate=(x0-1)/m+1-locate;%放大后的点分原图相邻两点比例,0为与左重合
temp1=(1-rate)*double(pic_init(y0,locate,:));
if((locate+1)<=a)
temp1=temp1+rate*double(pic_init(y0,locate+1,:));%可能越界所以加if
end
pic_temp0(y0,x0,:)=temp1;
end
end
end
%再处理纵向缩放,输出文件为pic_temp1
if(n<=1)%纵向缩小
pic_temp1=zeros(uint16(ym),uint16(xm),3);%纵向缩放存为pic_temp0
for y0=1:1:ym
for x0=1:1:xm
temp1=zeros(1,1,3);
for y0temp=uint16(1+((y0-1)/n)):1:uint16(y0/n)
temp1=temp1+double(pic_temp0(y0temp,x0,:));
end
length=double((uint16(y0/n)-uint16(1+((y0-1)/n)))+1);
temp1=temp1/length;
pic_temp1(y0,x0,:)=temp1;
end
end
else%(n>1)纵向放大
pic_temp1=zeros(uint16(ym),uint16(xm),3);
for y0=1:1:ym
for x0=1:1:xm
temp1=zeros(1,1,3);
locate=floor((y0-1)/n)+1;%被放大的点对应原图左侧最近点坐标
rate=(y0-1)/n+1-locate;%放大后的点分原图相邻两点比例,0为与左重合
temp1=(1-rate)*double(pic_temp0(locate,x0,:));
if((locate+1)<=b)
temp1=temp1+rate*double(pic_temp0(locate+1,x0,:));%可能越界所以加if
end
pic_temp1(y0,x0,:)=temp1;
end
end
end
pic_out=uint8(pic_temp1);
imshow(pic_out)
toc
没有合适的资源?快使用搜索试试~ 我知道了~
图片处理(旋转缩放)matlab程序
共2个文件
m:2个
5星 · 超过95%的资源 需积分: 20 41 下载量 150 浏览量
2011-08-08
15:25:19
上传
评论 2
收藏 2KB RAR 举报
温馨提示
可以实现: 1.图片缩小,采用平均值算法,可以实现长宽比不等的缩小 2.图片放大,采用线性插值,可以实现图片比例改变 3.图片旋转
资源推荐
资源详情
资源评论
收起资源包目录
图片处理.rar (2个子文件)
图片处理
zoom.m 3KB
roll.m 2KB
共 2 条
- 1
资源评论
- petalcs2012-10-26实现了想要的放大缩小功能,谢谢分享
- lovewin002012-11-29不错 学习到放大缩小了 !!!
- hzlsr2012-12-15很不错哦~ 找了好久,这个可以直接用的
- ein_qy2012-04-29好资料 能够实现图片的放大和缩小
famouswm
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功