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

时间:2013-11-07 22:54:47

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

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

我正在处理的应用程序是用C#编写的,我已经查看过倾斜/旋转图像上的MSDN info。不幸的是,这还不够控制 - 我需要GIMP / Photoshop提供的“Perspective”工具提供的功能。

我已经使用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)和其他人,如果需要的话,来完成我需要做的三维变换。

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

1 个答案:

答案 0 :(得分:1)

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