c# - 图像渲染技术 - 用于向现有照片添加逼真的文本

标签 c# image-processing graphics 2d convolution

很好奇是否有通用工具可以创建包含文本(或可能其他元素)的图像,这些文本被扭曲为图像的原始部分。这些“真实”的广告牌照片就是一个例子,它们可以让您将自己的图像或文字放在广告牌上。另一个例子是 zazzle 如何让您通过扭曲文本或图形来预览您的 T 恤设计,使其看起来好像根据织物的曲线轻微变形。

我是一名 .Net 人员,但有兴趣了解此类项目的任何通用解决方案,甚至只是一些有关该主题的其他讨论的指示都会有所帮助。

技术的澄清-描述很好,但最终我很好奇是否有工具包可以帮助自动化其中一些,并且可以在动态环境中用于按需图像生成。

最佳答案

“正确”的方法是确定应显示文本的表面的角度,以及表面的纹理(如果有)。然后,您可以在计算机中以与相机相同的角度和相对距离重新创建一个虚拟表面,然后在其上应用包含文本的纹理,并对其进行“凹凸贴图”,使文本看起来像是直接绘制在砖墙上的。或者。调整纹理的照明以匹配场景(可能使用“着色器”根据表面/凹凸贴图上每个点的角度控制光线的折射),然后将映射的纹理与原始图像叠加。这背后的数学是整个计算机图形行业的基石,并且仍在开发新的工具以更好更快地完成这项工作;您可能会在 System.Windows.Media.3D 命名空间(或 .NET 的 XNA Framework 插件)中找到可以为您提供帮助的工具。

这就是值(value)数百万美元的电影特效背后的基本流程;拍摄没有 CG 元素的真实场景(或者使用可以绘制或转描的替身),在网络空间中创建一个“虚拟布景”,然后“跟踪”虚拟摄像机在该布景中移动的运动,以匹配通过真实场景的真实相机。然后,您可以在该镜头中的任何位置渲染您想要的任何内容。

“便宜”的方法是不去费心“跟踪”(这是一个非常耗时的过程,尤其是在运动图像中),而只是对物体的位置、角度等进行“最佳猜测”元素,然后简单地将文本绘制在其顶部。 PhotoShop 具有可以以这种方式呈现文本的工具,但既然您在编程网站上提出这个问题,我会假设您想要编写自己的解决方案。

关于c# - 图像渲染技术 - 用于向现有照片添加逼真的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434966/

相关文章:

c# - Emgu CV - EmguCV 中图像的骨架(骨架化)

macos - 如何完全解除绑定(bind) GL_ELEMENT_ARRAY_BUFFER?

c# - Try-Catch-Finally 阻止 .NET4.5.1 的问题

C# 是否可以更改 ListView 中的 e.Label 值

c# - 实现接口(interface)的 Blazor 组件列表

image-processing - 检测图像/视频序列中的模糊

c# - MVC 应用程序中的自定义声明身份管理

python - 如果背景和前景的颜色相同,如何使用 OCR 读取金属板上雕刻的字符

c - C图形:如何在屏幕上绘制x-y轴?

c++ - 在 OpenGL 中绘制大量像素