2013-04-30 65 views
1

我需要修改OpenCV中dft函数内部的一些变量,以使其适合我的应用程序。如何修改opencv中的dft函数?

  1. 哪里可以找到dft源代码? 我试过C:\opencv243\build\include\opencv2\core.hpp,但它只给出了dft的描述:

    //!执行正向或反向一维或二维离散傅立叶变换 CV_EXPORTS_W void dft(InputArray src,OutputArray dst,int flags = 0,int nonzeroRows = 0);

  2. 源代码修改后的过程是什么?我必须给它一个不同的名字,如dft2()

  3. 哪里可以保存新功能?

我使用安装在windows7(32位)上的visual Studio 2010和OpenCV 2.4.3。 请注意,我是OpenCV的新手,刚从MATLAB切换过来。因此,如果您愿意提供帮助,我会很感激您能否解释清楚。

在MATLAB中,我可以简单地右键单击该函数并查看源文件(仅适用于开源函数)。

由于

Payam

回答

1
  1. DFT功能可以在dxt.cpp源文件中找到。这是位于$ opencv2.3 $ \ OpenCV的\模块\核心\ SRC

  2. 如果你将它保存为同样的功能,你会覆盖于此功能,将无法使用原有的功能。如果你只是想要你的新功能,然后只是改变代码,如果你想要原来的功能保存为另一种,dft2会冲浪,但我建议将它保存为更有意义的东西,如dft“whathaveIdone”

  3. 要么创建一些新文件等或只是将它作为一个新功能与dxt.cpp保存,您将需要创建函数定义等

  4. 为了找到这些信息我打开了Visual Studio中的OpenCV解决方案,并做了解决方案的广泛搜索DFT

+0

非常感谢您的快速和完美的答复。我只是不明白最后一句“只是用dxt.cpp将它保存为一个新函数”。我可以做修改并保存修改后的版本为DFT“whathaveIdone”的.cpp在同一目录dxt.cpp,然后在我的OpenCV的程序说DFT“whathaveIdone”()调用函数? – user2335132 2013-05-01 13:41:51

+0

是的,你可以将它保存在dxt.cpp但是你不会能够调用它没有投入dxt.hpp正确的函数定义,或者无论你使用headerfile到您的代码(文件)dxt.cpp 我建议阅读连接[这](http://bytes.com/topic/c/answers/713133-callling-function-another-file),并创建与C++标签的新问题,如果你需要更多的帮助。 G./ – GPPK 2013-05-01 15:08:04

+0

仅供将来参考,一般来说,我们如何找到这些功能的位置。换句话说,你是如何发现dft函数的位置在$ opencv2.3 $ \ opencv \ modules \ core \ src \ dxt.cpp中的? – user2335132 2013-05-10 10:10:01