我在使用OpenCV 1.1加载英特尔集成性能基元(IPP)7.1版时遇到了一些麻烦。
我的旧Open CV 1.1代码最初与另一台旧版Windows XP机器上的IPP 6.1一起使用。出于不重要的原因,我现在想在Intel's IPP 7.1的Intel Composer XE 2013全新Windows 7计算机上使用它,它是suggests that I have to change three lines in cxswitcher.c的一部分。英特尔的文档{{3}}让旧的OpenCV代码找到新的英特尔IPP,即我应该更新这些行:
static const char* ipp_sfx_ia32[] = { "-6.1", "-6.0", "-5.3", "-5.2", "-5.1", "", 0 };
static const char* ipp_sfx_ia64[] = { "64-6.1", "64-6.0", "64-5.3", "64-5.2", "64-5.1", "64", 0 };
static const char* ipp_sfx_em64t[] = { "em64t-6.1", "em64t-6.0", "em64t-5.3", "em64t-5.2", "em64t-5.1", "em64t", 0 };
我已经这样做了,现在它们包含版本号为“7.1”的字符串,尽可能匹配模式:
static const char* ipp_sfx_ia32[] = { "-7.1", "-6.1", "-6.0", "-5.3", "-5.2", "-5.1", "", 0 };
static const char* ipp_sfx_ia64[] = {"64-7.1", "64-6.1", "64-6.0", "64-5.3", "64-5.2", "64-5.1", "64", 0 };
static const char* ipp_sfx_em64t[] = { "em64t-7.1","em64t-6.1", "em64t-6.0", "em64t-5.3", "em64t-5.2", "em64t-5.1", "em64t", 0 };
我已经重新编译并在我的路径中添加了以下目录:
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\ipp
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel32\ipp
但是,当我运行包含cvGetModuleInfo()
函数的示例代码时,我的代码无法加载IPP dll并得到此输出:
NumUploadedFunction = 0
opencv_lib = cxcore: 1.1.0,
add_modules =
请注意,我已经做了一些其他测试。位于C:\Program Files (x86)\Intel\Composer XE 2013\ipp\demo\intel64
的英特尔IPP演示只有在我将带有DLL的目录添加到路径后才能运行,因此这让我认为我的PATH设置是正确的。我还确认,通过在MSYS提示符下运行echo $PATH
,实际上已将此目录添加到MSYS命令提示符中的路径中。
我怀疑问题与cxswitcher.c
中的代码有关。
我还应该尝试什么?