我在嘗試應用SURF算法,這是算法來查找關鍵點並匹配相應的兩個圖像,但問題在於,在我的情況下,我想將該算法應用於兩幅圖像,但它們的尺寸不同,所以它不起作用,請問我該怎麼做才能使兩幅圖像的尺寸相同。在MATLAB中製作兩個等尺寸的圖像
-1
A
回答
2
這取決於你的問題。如果圖像具有相同的分辨率,我建議您裁剪一個圖像或擴展一個圖像(使用零?)以匹配像素數量。
否則,我建議你插入圖像,以便它們在相同的點上定義,例如interp2。
你能給出你想要做的最小工作代碼的例子嗎?
編輯:
的code example你開始了與裝載到圖像。
% Example 2, Corresponding points
% Load images
I1=imread('TestImages/lena1.png');
I2=imread('TestImages/testc2.png');
下面是一些如何使圖像匹配的例子。你必須決定哪一個在你的情況下有意義。
方法1:裁剪兩個圖像
nrows = min(size(I1,1), size(I2,1));
ncols = min(size(I1,2), size(I2,2));
% The + floor(...) is only for centering the bounding box
croppedI1 = I1((1:nrows) + floor((size(I1,1)-nrows)/2), ...
(1:ncols)+floor((size(I1,2)-ncols)/2), ...
:);
croppedI2 = I2((1:nrows) + floor((size(I2,1)-nrows)/2, ...
(1:ncols) + floor((size(I2,2)-ncols)/2), ...
:);
I1=croppedI1;
I2=croppedI2;
方法2:用零擴展圖像,直到它們匹配
nrows = max(size(I1,1), size(I2,1));
ncols = max(size(I1,2), size(I2,2));
nchannels = size(I1,3);
extendedI1 = [ I1, zeros(size(I1,1), ncols-size(I1,2), nchannels); ...
zeros(nrows-size(I1,1), ncols, nchannels)];
extendedI2 = [ I2, zeros(size(I2,1), ncols-size(I2,2), nchannels); ...
zeros(nrows-size(I2,1), ncols, nchannels)];
I1=extendedI1;
I2=extendedI2;
方法3:縮放所述第二圖像以第一個的尺寸(這破壞了縱橫比)
% Scale the coordinates so that they range from 0 to 1 each.
[X1, Y1]=meshgrid(linspace(0, 1, size(I1,2)), linspace(0, 1, size(I1,1)));
[X2, Y2]=meshgrid(linspace(0, 1, size(I2,2)), linspace(0, 1, size(I2,1)));
nchannels = size(I1,3);
% interpolate each color plane separately
for k=1:nchannels
scaledI2(:,:,k)=interp2(X2, Y2, double(I2(:,:,k)), X1, Y1);
end
%I1=I1;
I2=scaledI2;
+0
其實我試圖在以下網站上實現代碼[鏈接](http://www.mathworks.com/matlabcentral/fileexchange/28300),但這隻適用於兩個圖像給出具有相同的尺寸,我想使此代碼工作的地方一個圖像有一些維度和其他維度,如果我這樣做與當前的代碼,它給出了錯誤?下標分配尺寸不匹配。 錯誤==> example2 at 27 I(:,1:size(I1,2),:)= I1; I(:,尺寸(I1,2)+1:大小(I1,2)+大小(I2,2):)= I2; 你能解決這個問題嗎? – 2012-04-17 03:07:55
0
% code for to play the images or to take same size images into array
r=0;c=0;
a1=imread(filename1);
[r c]=size(a1);
b=imread(filename2);
a2= imresize(b, [r c/3]);
% re-sized second image according to 1st one if u have specific
row col number then you can give like that
a=cat(4,a1,a2); % "a" array having a1 a2 images
implay(a,framerate); % to play images
相關問題
- 1. html使圖像按鈕尺寸等於圖像尺寸
- 2. 如何製作兩張相同尺寸的圖像?
- 3. 限制圖像尺寸
- 4. 尺寸打印的Matlab圖
- 5. 更改圖的尺寸MATLAB
- 6. Matlab的:比較2幅圖像具有不同的尺寸和像素尺寸
- 7. 圖像尺寸,
- 8. 圖像尺寸
- 9. 尺寸圖像的尺寸1600 * 1200
- 10. javascript中的圖像尺寸
- 11. 像素尺寸的兩倍
- 12. Matlab - 在同一窗口中顯示原始尺寸的兩幅圖像
- 13. 貼在牆上 - 圖像尺寸限制?
- 14. Mailchimp - 在前景限制圖像尺寸
- 15. Matlab log2圖形尺寸
- 16. 在matlab中加入不同尺寸的圖像
- 17. 如何在matlab中合併兩個不同尺寸的矩陣
- 18. Matlab rgb2hsv尺寸
- 19. 如何在Matlab中繪製X-Y-color尺寸的3D圖形?
- 20. 尺寸圖像以適合WebView尺寸
- 21. 屏幕尺寸到圖像尺寸
- 22. renderInContext指定尺寸的圖像繪製
- 23. Carrierwave圖像尺寸
- 24. PHP圖像尺寸
- 25. ImageView圖像尺寸
- 26. TTTableItem圖像尺寸
- 27. UIViewcontroller圖像尺寸
- 28. FPDF圖像尺寸
- 29. 強制特定尺寸在Matlab
- 30. 如何在MATLAB中鎖定圖像尺寸
Matlab的記錄很好。到目前爲止,您從文檔中學到了什麼,以及您嘗試了什麼? – 2012-04-16 04:54:35
究竟是什麼失敗? – 2012-04-16 10:25:07