我将在Raspberry Pi上做一个项目,通过投影机显示图像。图像是一个矩形,它的宽度只有它的两倍。由于我通过投影仪进行显示,这意味着距离项目最远的一侧最终会比较近的一侧窄,所以我需要扩大图像的这一侧。倾斜图像的一侧
有人能指出我该如何实施的正确方向吗?我甚至不知道正确的术语是什么,并且研究我需要做的数学。
我将在Raspberry Pi上做一个项目,通过投影机显示图像。图像是一个矩形,它的宽度只有它的两倍。由于我通过投影仪进行显示,这意味着距离项目最远的一侧最终会比较近的一侧窄,所以我需要扩大图像的这一侧。倾斜图像的一侧
有人能指出我该如何实施的正确方向吗?我甚至不知道正确的术语是什么,并且研究我需要做的数学。
我相信你所要求的称之为“梯形校正”。许多视频投影机可以自动执行此操作,因此在编写一堆代码之前,请务必检查:
以下是使用ImageMagick convert
实用程序执行此操作的方法。您需要知道图像的大小以开始。为了讨论,我们假设它是889 x 746.此外,让我们假设我们希望图像在底部比顶部“薄”60个像素,并且“细化”关于垂直中心对称 - 线。我们称左上像素(1,1),右上(889,1),左下(1,746)和右下(889,746)。左上角和右上角的像素保持原状;从左下方“移动”(1,746)到(61,746)。右下移动到(829,746),因为889-60是829 - 这是向左移动。
convert -distort perspective
命令需要四个像素的坐标,它们的预移动和移动后的值。然后计算如何移动所有其他像素,使原始直线保持直线。因此,鉴于以上的计算值,我们需要:
convert in.png -virtual-pixel transparent -distort perspective \
'1,1 1,1 \
889,1 889,1 \
1,746 60,746 \
889,746 829,746' \
out.png
当然,间距是不是必要的:它只是显示号码怎么行了上面的计算值。
当然,您需要调整数字以适合您的图像大小以及所需的校正程度。 ImageMagick适用于Raspberry Pi,并且很容易在应用程序代码中嵌入convert
的调用。
你的意思是说你想用命令行工具来扭曲你的图像,或者你想用你写的代码来处理它?以各种聪明的方式扭曲图像的好工具是'convert',它是ImageMagick软件包的一部分。 –
我会通过代码来处理它。 – Gargoyle
我在投影面上有4个矩形的长方形,所以我的想法是一个初始校准图像只画一个矩形,然后调整图像,直到每个角落触及这4个点,然后我就知道我的确切'抵消“,我不得不考虑。 – Gargoyle