求高手用MATLAB对图片进行缩放
任务:对图片进行缩放要求:1.缩放比例可以任意取(如2,1.3等)。2.不可直接使用matlab的图像处理函数,除imread,imshow3.提示:floor,ceil...
任务:对图片进行缩放
要求:1. 缩放比例可以任意取(如2,1.3等)。
2. 不可直接使用matlab的图像处理函数,除imread, imshow
3. 提示: floor,ceil, round, size…等。
4.非整数位置运用插值法。
求大神解答,谢谢!!! 展开
要求:1. 缩放比例可以任意取(如2,1.3等)。
2. 不可直接使用matlab的图像处理函数,除imread, imshow
3. 提示: floor,ceil, round, size…等。
4.非整数位置运用插值法。
求大神解答,谢谢!!! 展开
2个回答
展开全部
imo=imread('test.png');%读取
s=2;%缩放倍数,缩放后与原始大小的比值
figure(1)
imshow(imo);%原图显示
[m n d]=size(imo);
if s<=1 & s>0
for i=1:d
im(:,:,i)=imo(round(1:1/s:m),round(1:1/s:n),i);
end
elseif s>1
[X Y]=meshgrid(1:n,1:m);
[Xt Yt]=meshgrid(1:1/s:n,1:1/s:m);
for i=1:d
im(:,:,i)=interp2(double(imo(:,:,i)),Xt,Yt,'spline');
end
if isa(imo,'uint8')
im=uint8(im);
else
im=uint16(im);
end
end
figure(2)
imshow(im);%缩放图显示
s=2;%缩放倍数,缩放后与原始大小的比值
figure(1)
imshow(imo);%原图显示
[m n d]=size(imo);
if s<=1 & s>0
for i=1:d
im(:,:,i)=imo(round(1:1/s:m),round(1:1/s:n),i);
end
elseif s>1
[X Y]=meshgrid(1:n,1:m);
[Xt Yt]=meshgrid(1:1/s:n,1:1/s:m);
for i=1:d
im(:,:,i)=interp2(double(imo(:,:,i)),Xt,Yt,'spline');
end
if isa(imo,'uint8')
im=uint8(im);
else
im=uint16(im);
end
end
figure(2)
imshow(im);%缩放图显示
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询