2014-09-25 46 views

回答

2

順便說一句,你的語法有一個小的錯字。 values應該大寫,因此它是Values。這顯然是區分大小寫的......這有點荒謬,但這就是它的方式。


返回到您的文章,您需要指定一個額外的標誌vision.GeometricShearer決定要應用剪切的方向。具體而言,您需要設置Direction標誌,並將其設置爲HorizontalVertical。如果您省略此項,則默認爲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'); 

這是我得到什麼:

enter image description here

+0

如果我從相機拍攝圖像,使用此命令可以使圖像的最遠像素越來越近? – 2014-09-25 05:35:09

+0

@AmitWaghmare - 感謝您接受我的回答!至於你的問題,你需要一個深度圖,或者是從成像到相機的每個點的距離。即使如此,使用該命令,剪切僅限於水平和垂直剪切,而不是垂直於相機軸的任何剪切。因此,不,這是不可能的......至少不是我所知。 – rayryeng 2014-09-25 05:48:36