Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何使用vision.geometricshear命令执行上下剪切?_Matlab_Image Processing_Computer Vision_Matlab Cvst - Fatal编程技术网

Matlab 如何使用vision.geometricshear命令执行上下剪切?

Matlab 如何使用vision.geometricshear命令执行上下剪切?,matlab,image-processing,computer-vision,matlab-cvst,Matlab,Image Processing,Computer Vision,Matlab Cvst,上面的MATLAB命令定义了用于图像水平剪切的对象。是否有一种方法可以定义同一个对象,但用于上下剪切?顺便说一句,您的语法中有一个小的输入错误值应该大写,因此它是值。这显然是区分大小写的。。。。这有点可笑,但事实就是这样 回到您的帖子,您需要指定一个附加的标志来确定要应用剪切的方向。具体来说,您需要设置方向标志,并将其设置为水平或垂直。如果忽略此项,则默认值为水平。因此,如果要剪切图像的最后一列并将其向下移动20像素,可以执行以下操作: h = vision.GeometricShearer(

上面的MATLAB命令定义了用于图像水平剪切的对象。是否有一种方法可以定义同一个对象,但用于上下剪切?

顺便说一句,您的语法中有一个小的输入错误<代码>值应该大写,因此它是
。这显然是区分大小写的。。。。这有点可笑,但事实就是这样


回到您的帖子,您需要指定一个附加的标志来确定要应用剪切的方向。具体来说,您需要设置
方向
标志,并将其设置为
水平
垂直
。如果忽略此项,则默认值为
水平
。因此,如果要剪切图像的最后一列并将其向下移动20像素,可以执行以下操作:

h = vision.GeometricShearer('values' , [0 20]); 
如果要可视化结果,可以使用
步骤
并将其应用于图像。例如,让我们加载作为MATLAB系统路径一部分的
棋盘格
图像,应用剪切,然后在同一个图中显示两个结果:

h = vision.GeometricShearer('Values', [0 20], 'Direction', 'Vertical'); 
这就是我得到的:


如果我正在从相机拍摄图像,使用此命令可以使图像的最远像素越来越接近最远吗?@AmitWaghmare-感谢您接受我的回答!至于你的问题,你需要一个深度图,或者从成像到相机的每个点的距离测量。即使如此,使用此命令,剪切仅限于水平和垂直剪切,而不限于垂直于摄影机轴的任何剪切。因此,不,这是不可能的。。。至少据我所知不是这样。
%// 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');