如何使用vision.GeometricShearer命令使其执行上下剪切?

时间:2014-09-25 04:38:13

标签: matlab image-processing computer-vision matlab-cvst

h = vision.GeometricShearer('values' , [0 20]); 

上述MATLAB命令定义了一个用于水平剪切图像的对象。有没有办法定义相同的对象,但上下剪切?

1 个答案:

答案 0 :(得分: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