Matlab:对图像子集应用投影校正
根据我发布的问题,我需要对给定4点的图像应用投影变换 假设我成功地从图像中分割出二维码: 我将QR顶点的坐标存储在一个点数组中。在这种情况下,我只需要旋转以获得校正图像,但在这里: 我需要对图像进行投影校正 有没有办法让这些变换知道所述顶点的坐标 编辑Matlab:对图像子集应用投影校正,matlab,image-processing,transformation,Matlab,Image Processing,Transformation,根据我发布的问题,我需要对给定4点的图像应用投影变换 假设我成功地从图像中分割出二维码: 我将QR顶点的坐标存储在一个点数组中。在这种情况下,我只需要旋转以获得校正图像,但在这里: 我需要对图像进行投影校正 有没有办法让这些变换知道所述顶点的坐标 编辑 我用@Xiang的建议和图像的HSV组件解决了这个问题。如果我正确理解了这个问题,你就有4个角点,你想知道在变换后的图像中将它们映射到哪个坐标。好吧,这取决于你。您知道这是一个正方形,因此只需选择任意高度或根据原始图像的一些测量值进行计算,并
我用@Xiang的建议和图像的HSV组件解决了这个问题。如果我正确理解了这个问题,你就有4个角点,你想知道在变换后的图像中将它们映射到哪个坐标。好吧,这取决于你。您知道这是一个正方形,因此只需选择任意高度或根据原始图像的一些测量值进行计算,并生成坐标:
(0,0)
(0, size)
(size, 0)
(size, size)
现在,您可以使用maketform
计算变换并将其应用于原始图像
来自Matlab文档:
T=maketform('projective',U,X)
要应用转换,请使用
imtransform
并设置字段UData
,VData
,XData
,YData
,以指定源坐标系和要转换到的新采样坐标。这非常有效,非常感谢!但是,有一件事,在我发布的第二张图像中,这不起作用,可能是因为图像没有足够的信息在点之间进行良好的插值吗?我不确定你所说的“不起作用”是什么意思。你得到了什么结果?我不确定我是否可以在评论中上传图像,让我编辑问题。如果你不能解决这个问题,我建议你开始一个新问题,并提供完整的细节,包括数据和代码。