首页 > 解决方案 > 以图像看起来平坦的方式将图像投影到圆柱表面上

问题描述

我正在尝试使用 matlab 在水瓶表面打印二维码。然而,由于瓶子的曲面,二维码的形状变形,无法识别二维码瓶子。

我想知道我可能必须应用什么数学方程来变形图片(对于图片的一般几何形状和图片内部的间距变形),这样当打印到圆柱表面时,它看起来就像在平面上表面到相机。

谢谢!

标签: matlabimage-processingprojection

解决方案


我在这方面取得了一些成功,虽然它不使用 Matlab,但它可能会给你或其他人一个可能的入门方式的想法。如果您不喜欢它,则无需投反对票,只需忽略它,它就会沉入答案的底部-我只是想帮助或激发想法...

qrencode我在终端中生成了一个二维码,如下所示:

qrencode -o qr.png -d 300 'http://www.thesetchells.com'

在此处输入图像描述

我将它的大小调整为 500x500,然后生成了一个“位移图”,它只是一个线性渐变,并创建了与 QR 码大小相匹配的对比度拉伸。我在终端中使用了ImageMagick,但显然你可以使用 Matlab 或其他工具:

在此处输入图像描述

然后我将置换贴图应用到我的二维码,如下所示:

convert qr.png map.png -fx 'p{v*w,j}' result.png

得到了一个扭曲的二维码,我打印出来并包裹在一个大瓶子上,我的 iPhone 可以读取它。

Anthony Thyssen 在这里有一些关于“位移图” 的非常有用的信息。


推荐阅读