[問題] bilinear 圖片放大縮小已回收
先承認這是作業
不過我已經想很久了
要用bilinear 做放大縮小
我現在的想法是將 原本圖形的大小和新的圖形大小取最小公倍數
然後把原本的martrix 切割
舉例來說
2*2變成5*5
最小公倍數是10
所以2*2就先變成20*20
然後10/2=4
所以20*20取4*4當做新的圖形的1*1
問題來了
通常圖片都是512*512或是1024*1024甚至更多
就會面臨memory不夠的問題
code 附在下面
還沒有很完全
不知道有沒有高手能提供方法將memory使用量降到普通電腦可以跑的範圍
還是我應該放棄這個想法呢
感謝先
Fx=input('zooming factor in x axis= ');
% set zooming factor in X direction
Fy=input('zooming factor in y axis= ');
% set zooming factor in Y direction
[M,N]=size(prepic);
% get size from original picture
Sx=(N).*(Fx);
% new number of pixel of picture in X
Sy=(M).*(Fy);
% new number of pixel of picture in Y
Sx=round(Sx);
% de-decimal
Sy=round(Sy);
% de-decimal
Ylcm=lcm(Sy,M);
Xlcm=lcm(Sx,N);
output=zeros(Sy,Sx);
tempic=zeros(Ylcm,Xlcm);
numY=Ylcm/M;
numX=Xlcm/N;
for i=1:N
for j=1:M
tempic((j*Ylcm-(Ylcm-1)):(j*Ylcm),...
(i*Xlcm-(Xlcm-1)):(i*Xlcm))=prepic(j,i);
end
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.94.29
推
03/14 20:56, , 1F
03/14 20:56, 1F
→
03/14 21:01, , 2F
03/14 21:01, 2F