資源簡介
包含了Hybrid Image代碼以及數據集,通過自帶的濾波以及自己實現的濾波函數得到圖像高頻,低頻信息,接著進行圖像融合。而且使用了對象對齊操作,使得不同尺寸的圖像,圖像中的不同大小的目標的融合成為了可能。

代碼片段和文件信息
function?[im1?im2]?=?Align_Images(im1?im2)
%根據用戶對圖像選取的關鍵點,進行居中、縮放、旋轉
%以保證關鍵點對齊
%?獲得輸入圖像的高、寬
[h1?w1?b1]?=?size(im1);
[h2?w2?b2]?=?size(im2);
%調用ginput()讓用戶選擇im1需要對齊的關鍵點
figure(‘Name‘‘Image?1‘)?hold?off?imagesc(im1)?axis?image?colormap?gray
[x1?y1]?=?ginput(2);
cx1?=?mean(x1);?cy1?=?mean(y1);
%調用ginput()讓用戶選擇im2需要對齊的關鍵點
figure(‘Name‘‘Image?2‘)?hold?off?imagesc(im2)?axis?image?colormap?gray
[x2?y2]?=?ginput(2);
cx2?=?mean(x2);?cy2?=?mean(y2);
%以填充圖像的方式,讓im1的關鍵點居中
tx?=?round((w1/2-cx1)*2);
if?tx?>?0
????im1?=?padarray(im1?[0?tx]?‘pre‘);
else
????im1?=?padarray(im1?[0?-tx]?‘post‘);
end
ty?=?round((h1/2-cy1)*2);
if?ty?>?0
????im1?=?padarray(im1?[ty?0]?‘pre‘);
else
????im1?=?padarray(im1?[-ty?0]?‘post‘);
end??
%以填充圖像的方式,讓im2的關鍵點居中
tx?=?round((w2/2-cx2)*2)?;
if?tx?>?0
????im2?=?padarray(im2?[0?tx]?‘pre‘);
else
????im2?=?padarray(im2?[0?-tx]?‘post‘);
end
ty?=?round((h2/2-cy2)*2);
if?ty?>?0
????im2?=?padarray(im2?[ty?0]?‘pre‘);
else
????im2?=?padarray(im2?[-ty?0]?‘post‘);
end
%分別計算圖像關鍵點的歐式距離,并以此距離比例進行圖像的縮放
len1?=?sqrt((y1(2)-y1(1)).^2+(x1(2)-x1(1)).^2);
len2?=?sqrt((y2(2)-y2(1)).^2+(x2(2)-x2(1)).^2);
dscale?=?len2?./?len1;
if?dscale?1
????im1?=?imresize(im1?dscale?‘bilinear‘);?
else
????im2?=?imresize(im2?1./dscale?‘bilinear‘);
end
%計算出圖像關鍵點的弧度差值,并以此進行旋轉
theta1?=?atan2(-(y1(2)-y1(1))?x1(2)-x1(1));?
theta2?=?atan2(-(y2(2)-y2(1))?x2(2)-x2(1));
dtheta?=?theta2-theta1;
im1?=?imrotate(im1?dtheta*180/pi?‘bilinear‘);?
%獲得經過上述操作后,圖像的高、寬
[h1?w1?b1]?=?size(im1);
[h2?w2?b2]?=?size(im2);
%裁剪兩圖像中寬度較大的圖像并保持關鍵點居中(左右兩邊同時裁剪)
minw?=?min(w1?w2);
brd?=?(max(w1?w2)-minw)/2;
if?minw?==?w1?
????im2?=?im2(:?(ceil(brd)+1):end-floor(brd)?:);
else
????im1?=?im1(:?(ceil(brd)+1):end-floor(brd)?:);??
end
%裁剪兩圖像中高度較大的圖像并保持關鍵點居中(上下兩邊同時裁剪)
minh?=?min(h1?h2);
brd?=?(max(h1?h2)-minh)/2;
if?minh?==?h1??
????im2?=?im2((ceil(brd)+1):end-floor(brd)?:?:);
????ty?=?ty-ceil(brd);
else
????im1?=?im1((ceil(brd)+1):end-floor(brd)?:?:);
????ty?=?ty+ceil(brd);????
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2341??2019-10-22?18:03??HI\Align_Images.m
?????目錄???????????0??2019-10-22?17:10??HI\data\
?????文件???????12574??2019-10-21?18:40??HI\data\1.jpg
?????文件???????17858??2019-10-21?18:40??HI\data\2.jpg
?????文件??????408056??2013-08-31?08:37??HI\data\bicycle.bmp
?????文件??????373424??2013-08-31?09:07??HI\data\bird.bmp
?????文件??????444808??2011-09-06?04:07??HI\data\cat.bmp
?????文件??????444808??2011-09-06?04:08??HI\data\dog.bmp
?????文件??????179196??2013-08-31?07:52??HI\data\einstein.bmp
?????文件??????346352??2013-09-01?08:15??HI\data\fish.bmp
?????文件??????179196??2013-08-31?07:53??HI\data\marilyn.bmp
?????文件??????408056??2013-08-31?08:38??HI\data\motorcycle.bmp
?????文件??????373424??2013-08-31?09:07??HI\data\plane.bmp
?????文件??????346352??2013-09-01?08:15??HI\data\submarine.bmp
?????文件?????????731??2019-10-22?19:10??HI\ImagePyramid.m
?????文件?????????689??2019-10-22?17:06??HI\MyImfilter.m
?????文件????????1988??2019-10-22?19:11??HI\Start.m
?????文件?????????837??2019-10-22?17:07??HI\SysImfilter.m
?????文件????????1351??2019-10-22?10:07??HI\test.m
?????文件?????????326??2019-10-26?21:13??readme.txt
評論
共有 條評論