1
h = vision.GeometricShearer('values' , [0 20]);
上面的MATLAB命令定義了一個用於水平剪切圖像的對象。有沒有辦法來定義同一個對象,但上下剪切?如何使用vision.GeometricShearer命令,以便執行上下剪切?
h = vision.GeometricShearer('values' , [0 20]);
上面的MATLAB命令定義了一個用於水平剪切圖像的對象。有沒有辦法來定義同一個對象,但上下剪切?如何使用vision.GeometricShearer命令,以便執行上下剪切?
順便說一句,你的語法有一個小的錯字。 values
應該大寫,因此它是Values
。這顯然是區分大小寫的......這有點荒謬,但這就是它的方式。
返回到您的文章,您需要指定一個額外的標誌vision.GeometricShearer
決定要應用剪切的方向。具體而言,您需要設置Direction
標誌,並將其設置爲Horizontal
或Vertical
。如果您省略此項,則默認爲Horizontal
。因此,如果你想剪切圖像的最後一列和20個像素下移,你可以這樣做:
h = vision.GeometricShearer('Values', [0 20], 'Direction', 'Vertical');
如果你想以可視化的結果,你會使用step
並將其應用到圖片。作爲一個例子,讓我們在checkerboard
圖像這是MATLAB的系統路徑的一部分加載,應用剪切,然後同時顯示效果在同一個身影:
%// Define vertical shear
h = vision.GeometricShearer('Values', [0 20], 'Direction', 'Vertical');
img = im2single(checkerboard); %// Read in image
outimg = step(h,img); %// Apply shear
%// Show both results
subplot(2,1,1), imshow(img);
title('Original image');
subplot(2,1,2), imshow(outimg);
title('Output image');
這是我得到什麼:
如果我從相機拍攝圖像,使用此命令可以使圖像的最遠像素越來越近? – 2014-09-25 05:35:09
@AmitWaghmare - 感謝您接受我的回答!至於你的問題,你需要一個深度圖,或者是從成像到相機的每個點的距離。即使如此,使用該命令,剪切僅限於水平和垂直剪切,而不是垂直於相機軸的任何剪切。因此,不,這是不可能的......至少不是我所知。 – rayryeng 2014-09-25 05:48:36