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:对图像子集应用投影校正_Matlab_Image Processing_Transformation - Fatal编程技术网

Matlab:对图像子集应用投影校正

Matlab:对图像子集应用投影校正,matlab,image-processing,transformation,Matlab,Image Processing,Transformation,根据我发布的问题,我需要对给定4点的图像应用投影变换 假设我成功地从图像中分割出二维码: 我将QR顶点的坐标存储在一个点数组中。在这种情况下,我只需要旋转以获得校正图像,但在这里: 我需要对图像进行投影校正 有没有办法让这些变换知道所述顶点的坐标 编辑 我用@Xiang的建议和图像的HSV组件解决了这个问题。如果我正确理解了这个问题,你就有4个角点,你想知道在变换后的图像中将它们映射到哪个坐标。好吧,这取决于你。您知道这是一个正方形,因此只需选择任意高度或根据原始图像的一些测量值进行计算,并

根据我发布的问题,我需要对给定4点的图像应用投影变换

假设我成功地从图像中分割出二维码:

我将QR顶点的坐标存储在一个点数组中。在这种情况下,我只需要旋转以获得校正图像,但在这里:

我需要对图像进行投影校正

有没有办法让这些变换知道所述顶点的坐标

编辑
我用@Xiang的建议和图像的HSV组件解决了这个问题。

如果我正确理解了这个问题,你就有4个角点,你想知道在变换后的图像中将它们映射到哪个坐标。好吧,这取决于你。您知道这是一个正方形,因此只需选择任意高度或根据原始图像的一些测量值进行计算,并生成坐标:

(0,0)
(0, size)
(size, 0)
(size, size)
现在,您可以使用
maketform
计算变换并将其应用于原始图像

来自Matlab文档:

T=maketform('projective',U,X)


要应用转换,请使用
imtransform
并设置字段
UData
VData
XData
YData
,以指定源坐标系和要转换到的新采样坐标。

这非常有效,非常感谢!但是,有一件事,在我发布的第二张图像中,这不起作用,可能是因为图像没有足够的信息在点之间进行良好的插值吗?我不确定你所说的“不起作用”是什么意思。你得到了什么结果?我不确定我是否可以在评论中上传图像,让我编辑问题。如果你不能解决这个问题,我建议你开始一个新问题,并提供完整的细节,包括数据和代码。