资料收集:让OpenCV使用IPP

全文纯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

原文地址:https://www.cnblogs.com/mumuliang/p/2139357.html