You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.2 KiB
33 lines
1.2 KiB
3 years ago
|
function ZI = imageZoom( I,zmf )
|
||
|
%----------------------˫���Բ�ֵ�����ž�����ͼ��---------------------------
|
||
|
% Input��
|
||
|
% I��ͼ���ļ���������������ֵ��0~255����
|
||
|
% zmf���������ӣ������ŵı���
|
||
|
% Output��
|
||
|
% ���ź���ͼ������ ZI
|
||
|
%-------------------------------------------------------------------
|
||
|
%% Step2 ͨ��ԭʼͼ�����������ӵõ���ͼ���Ĵ�С����������ͼ����
|
||
|
[IH,IW] = size(I);
|
||
|
ZIH = round(IH*zmf); % �������ź���ͼ���߶ȣ�����ȡ��
|
||
|
ZIW = round(IW*zmf); % �������ź���ͼ�����ȣ�����ȡ��
|
||
|
ZI = zeros(ZIH,ZIW); % ������ͼ��
|
||
|
%% Step3 ��չ����I��Ե
|
||
|
IT = zeros(IH+2,IW+2);
|
||
|
IT(2:IH+1,2:IW+1,:) = I;
|
||
|
IT(1,2:IW+1,:)=I(1,:,:);IT(IH+2,2:IW+1,:)=I(IH,:,:);
|
||
|
IT(2:IH+1,1,:)=I(:,1,:);IT(2:IH+1,IW+2,:)=I(:,IW,:);
|
||
|
IT(1,1,:) = I(1,1,:);IT(1,IW+2,:) = I(1,IW,:);
|
||
|
IT(IH+2,1,:) = I(IH,1,:);IT(IH+2,IW+2,:) = I(IH,IW,:);
|
||
|
%% Step4 ����ͼ����ij�����أ�zi��zj��ӳ�䵽ԭʼͼ��(ii��jj)��������ֵ��
|
||
|
for zj = 1:ZIW % ��ͼ�����а�����Ԫ��ɨ��
|
||
|
for zi = 1:ZIH
|
||
|
ii = (zi-1)/zmf; jj = (zj-1)/zmf;
|
||
|
i = floor(ii); j = floor(jj); % ����ȡ��
|
||
|
u = ii - i; v = jj - j;
|
||
|
i = i + 1; j = j + 1;
|
||
|
ZI(zi,zj,:) = (1-u)*(1-v)*IT(i,j,:) +(1-u)*v*IT(i,j+1,:)...
|
||
|
+ u*(1-v)*IT(i+1,j,:) +u*v*IT(i+1,j+1,:);
|
||
|
end
|
||
|
end
|
||
|
% ZI = uint8(ZI);
|
||
|
end
|