OpenCV对TBB的支持

这几天在研究OpenCV+TBB,目前只看了最简单的parallel_xx操作。

的确用起来非常方便,实现了一种“任务”级别的并行。


下载:

http://threadingbuildingblocks.org  可能被和谐

另外还有包装在Intel Parallel Studio XE里的版本,但是要收费的,可以试用30天,大家自己google。


安装:

单独下载的版本解压就可以了,集成版安装的时候默认就选上了。

带着TBB编译OpenCV,见之前的一篇blog:

http://blog.csdn.net/twilightgod/article/details/6692766


使用:

用CMake生成的时候实际上是在文件cvconfig.h里写上了#define HAVE_TBB

OpenCV对TBB进行了一些包装,具体在module\core\include\opencv2\core\internal.hpp

包装了parallel_for, parallel_do, parallel_reduce, BlockedRange。

在源码中能看到很多#ifdef HAVE_TBB的地方,这些都是OpenCV已经写好的优化的地方,如果你没有TBB也会有串行的代码。


需要注意的是,如果在自己的代码中用,

#include "opencv2/core/core.hpp"
#include "opencv2/core/internal.hpp"

得在之前加上#HAVE_TBB


TBB本身的使用最好就是看官方文档和sample了,很详细,还有做好的vs工程可以调用。


欢迎交流。

你可能感兴趣的:(OpenCV)