假設我有4個角點:(x1,y1); (x2,y2);(x3,y3); (x4,y4)和矩形圖像大小(m,n) 如何顯示圖像,以便在顯示的圖像在所提及的四個點處具有其角點。 換句話說,四個角可以控制圖像旋轉的角度(請記住圖像邊緣可能不平行) 謝謝!在四個角點之間顯示圖像Matlab
4
A
回答
2
假設圖像不會被改變,只需要2個點來計算圖像旋轉。一般情況下類似於
angle = atan2(y2-y1, x2-x1)*180/pi; %angle between image and axis (in degrees)
B = imrotate(A,angle); %rotation
5
您需要爲廣義解決方案翹曲圖像。你可以這樣做:
首先,閱讀圖像。
img=imread('cameraman.tif');
if size(img,3)==3
img=rgb2gray(img);
指定一組變換後點(在你的情況,(x1,y1) ... (x4,y4)
),他們是fixedPoints
。
movingPoints=[1 1;256 1; 256 256; 1 256] %(x,y) coordinate
fixedPoints=[25 25;250 12;255 200;30 180];
然後,估計轉換。我選擇投影變換。您也可以選擇仿製品。
TFORM = fitgeotrans(movingPoints,fixedPoints,'projective');
因爲,你希望圖像去指定的角落,你必須指定輸出視圖。可以通過如下構建參考二維圖像來完成。
R=imref2d(size(img),[1 size(img,2)],[1 size(img,1)]);
最後,扭曲圖像。
imgTransformed=imwarp(imread('cameraman.tif'),R,TFORM,'OutputView',R);
顯示圖片。
imshow(imgTransformed,[]);
你應該有你的形象在指定的點包含的圖像將是原始圖像的大小的角落和框。
2
與@Parag提出的方法非常相似的另一種方法是直接使用MATLAB的圖像轉換函數。
下面是如何:你 首先要考慮的是,如果圖像是一個「統一」的矩形內,並相應地確定初始轉化條件:
udata = [0 1];
vdata = [0 1];
fill_color = 128;
org_rect = [0 0;1 0;1 1;0 1];
注意,fill_color
變量表示只是用於顏色填充不會被轉換圖像覆蓋的畫布部分。然後從原始申請投影變換成表示圖像畫布新的矩形如下:
tform = maketform('projective', org_rect, new_rect);
[out_im,xdata,ydata] = imtransform(in_im, tform, 'bicubic', 'udata', udata, 'vdata', vdata, 'size', size(in_im), 'fill', fill_color);
大家可能注意到轉化是雙三次並返回兩個出的圖像(out_im
)和所表示的新的座標系通過data
和data
。如果您只保留輸出圖像,那麼它將與原始座標系統中的輸入圖像具有相同的尺寸(因此它會稍微拉伸)。 爲了顯示圖像正常,你可以使用下面的命令:
imshow(out_im,'XData',xdata,'YData',ydata);
下面是一個例子。讓我們考慮一下Lena的案例。
應用轉換後,我們可以使用如下所示的正確座標顯示。
如果我們決定只顯示輸出圖像而不參考新的座標系,我們會得到如下圖所示的圖像。
在本例中使用的輸出矩形是:[-1 -2;2 -1;3 3;-3 1]
相關問題
- 1. 顯示四個隨機圖像
- 2. 在TextView之間顯示圖像
- 3. 如何在Android上的四點之間裁剪圖像
- 4. 兩點之間的Matlab角度
- 5. Matlab篩選關鍵點多個圖像,顯示在一個圖像
- 6. 比較MATLAB中2個圖像之間的交叉點
- 7. Matlab - 顯示背景圖像
- 8. Matlab繪圖四面體和三角形
- 9. 如何在顯示標籤庫之間顯示圖像?
- 10. 通過指定四個角點(非矩形)來裁剪圖像
- 11. 兩個向量之間的角度matlab
- 12. 在Google地圖上顯示多個點之間的路線
- 13. 在Matlab上顯示點值圖
- 14. 角度顯示圖像
- 15. 以角度顯示圖像
- 16. 在Matlab中顯示圖像類型Double
- 17. 在gui中的Matlab顯示圖像
- 18. MATLAB:在圓內顯示圖像
- 19. 如何在matlab中顯示dicom圖像?
- 20. 如何在iPhone中的一行顯示四個圖像
- 21. 在matlab上繪製2d點並在點上點擊時顯示相關圖像
- 22. 如何在matlab中顯示圖像上的點?
- 23. 在MATLAB中顯示圖像縮放空間
- 24. 在Matlab圖中顯示多個圖
- 25. jquery:在右上角顯示圖像
- 26. 在兩個matlab數字之間共享圖像指南
- 27. 在Matlab的一個窗口中顯示多個圖像
- 28. LeafLet在地點之間顯示
- 29. 飲片圖像棒的改變顯示後四處「顯示:無」
- 30. 使用OpenCV在圖像中找到兩個點之間的角度
1。這也是我所做的。 – rayryeng