【问题标题】:How can I apply 3D-transformations to an image?如何将 3D 变换应用于图像?
【发布时间】:2013-11-07 22:54:46
【问题描述】:

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

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

我已经在使用 P/Invoke 来调用以下 C++ DLL(将它们从 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)和其他库来完成我需要做的三维转换。

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

【问题讨论】:

  • 如果您想自己编写软件,请查看仿射变换。 .NET 支持它们,我上次检查过。

标签: c# c++ image-processing gimp gdkpixbuf


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多