matlab - 以图像看起来平坦的方式将图像投影到圆柱表面上
问题描述
我正在尝试使用 matlab 在水瓶表面打印二维码。然而,由于瓶子的曲面,二维码的形状变形,无法识别二维码瓶子。
我想知道我可能必须应用什么数学方程来变形图片(对于图片的一般几何形状和图片内部的间距变形),这样当打印到圆柱表面时,它看起来就像在平面上表面到相机。
谢谢!
解决方案
我在这方面取得了一些成功,虽然它不使用 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 在这里有一些关于“位移图” 的非常有用的信息。
推荐阅读
- ibm-cloud-private - 部署 CAM 时出现内部错误:admission webhook 错误
- javascript - Ajax 的意外行为
- javascript - 生成字符串的所有谐音
- c# - Azure SQL UserTokenCaches 在本地工作但未部署
- unit-testing - Angular 6 - 单元测试 Mat-Select
- safari-extension - Safari 12 扩展和 NativeMessaging
- javascript - Safari 11 上的地理位置与 POSITION_UNAVAILABLE 一致
- matlab - 逗号和冒号一起有什么作用?
- python - 您可以直接将文件中的内容加载到 protobuff 中吗?
- python - 缺少 1 个必需的位置参数:“数字”