如何将 3D 变换应用于图像

How can I apply 3D-transformations to an image?

本文关键字:应用于 图像 变换 3D      更新时间:2023-10-16

我正在尝试(在代码中)获取图像文件并对其应用三维转换(思考:透视)。

我正在开发的应用程序是用 C# 编写的,我已经查看了有关倾斜/旋转图像的 MSDN 信息。 不幸的是,这还不够控制 - 我需要GIMP/Photoshop提供的"透视"工具提供的功能。

我已经在使用 P/Invoke 调用以下 DLL C++(将它们从 GIMP/bin 文件夹中取出)用于其他图像功能:

[DllImport("libgobject-2.0-0.dll", SetLastError = true)]
[DllImport("librsvg-2-2.dll", SetLastError = true)]
[DllImport("libgdk_pixbuf-2.0-0.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]

这种方法似乎适用于我需要做的事情(栅格化矢量图像),并且它将所有代码保留在应用程序中(我宁愿不必走命令行路线 - 我知道 GIMP 可以编写脚本,但这是现在的最后手段)。

我想找出一种方法来使用这些库(libgdk-pixbuf-2.0,libgobject)和其他库,如果需要的话,来完成我需要做的三维转换。

有人有什么建议吗? 我对其他想法持开放态度,但真的很喜欢使用这些开源库来获得工作

的想法。

Open CV具有warpPerspective功能,完全符合您的需要。对于使用 C# 工作,您可以考虑 Emgu.cv OpenCV 的 c# 包装器。