全文纯copy自:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=782&p=15103
1.OpenCV确实是在运行时自动加载这些优化库, 不需要运行cvUseOptimized()函数, 前提是库的相关路径注册了环境变量.
可运行如下程序进行检验:const char* opencv_libraries = 0;
const char* addon_modules = 0;
cvGetModuleInfo( 0, &opencv_libraries,&addon_modules );
printf( "OpenCV: %s\r\nAdd-on Modules: %s\r\n.", opencv_libraries, addon_modules);
如果自动加载成功会输出:
OpenCV: cxcore: 1.0.0, cv: 1.0.0
Add-on Modules: ippcv-5.1.dll, ippi-5.1.dll, ipps-5.1.dll, ippvm-5.1.dll, ippcc-5.1.dll, mkl_p4.dll
此时再运行cvUseOptimized(1), 通过查看返回值, 可以知道有多少个函数被优化。
2.不同函数优化的程度不一。
用几个函数测试了一下加载优化库后的优化程度:
系统: P4(2.6G) 512MB XP VC6
测试图像: 768×576 8UC1
循环100次
测试函数 cvSmooth(CV_GAUSSIAN,31*31) 2493ms(with IPP) 5498ms(without IPP)
测试函数 cvSobel(7*7) 1674ms(with IPP) 1672ms(without IPP)
测试函数 cvCanny(3*3) 2901ms(with IPP) 3385ms(without IPP)
可以看出不同函数优化的程度不一样, cvSmooth优化程度很高, 性能提升50%多, cvSobel基本没有变化, 网上有的老外还说用了IPP之后速度下降了 .
所以究竟用不用IPP(199美元呢), 还得各位测试一下自己的程序, 好在现在还有Evaluation版的IPP可以用。要是OpenCV下个版本能提供一份儿各个函数优化表就好了.
另:http://blog.sina.com.cn/s/blog_675662490100idkf.html