我将在Raspberry Pi上做一个项目,通过投影仪显示图像。图像是一个矩形,长度恰好是宽度的两倍。由于我通过投影仪进行显示,这意味着距离项目最远的一侧最终会比较近的一侧窄,所以我需要扩展图像的那一侧。
有人能指出我正确的方向吗?我甚至不知道什么是正确的术语,并且需要考虑我需要做的数学。
答案 0 :(得分:1)
你所要求的被称为“梯形校正”,我相信。许多视频投影仪可以自动执行此操作,因此在编写一堆代码之前值得检查:)
以下是使用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
的调用。