请问opencv怎么使用多核心啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问opencv怎么使用多核心啊?相关的知识,希望对你有一定的参考价值。

opencv怎么使用多核心啊?默认好像是使用单核心

开启openMP,Windows平台下,在VS系列编译器中,要想使用OpenMP,只需在工程设置中把C/C++ --> Language --> OpenMP Support设为Yes就可以了。这样就能编译出多核心运行的程序了追问

这个开启了还是没作用啊,cpu还是只有一颗核心工作

追答

我是这么设置的。在使用opencv-haar程序训练分类器时是可以的,未开启时CPU占用率只有50%,打开后CPU占用率达到100%

追问

哦,难怪呢,我用的是压缩jpeg的函数,没有针对openmp做优化,所以运行起来还是单核

参考技术A 请参考
http://iamsrijon.wordpress.com/2013/11/15/how-to-compile-opencv-to-utilize-multiple-core-processor-in-linux/追问

打不开啊,而且我的环境是VS2010+opencv2.43

追答

Step 4: Edit and replace the lines 49 to 58 in file ~/opencv-2.4.6.1/cmake/OpenCVFindLibsPerf.cmake( for other versions of OpenCV, search for the OpenMP part).

# — OpenMP —
if(NOT HAVE_TBB AND NOT HAVE_CSTRIPES)
include (FindOpenMP) # — since cmake version 2.6.3
if (OPENMP_FOUND)
set (HAVE_OPENMP TRUE)
set (CMAKE_CXX_FLAGS “$CMAKE_CXX_FLAGS $OpenMP_CXX_FLAGS”)
set (CMAKE_C_FLAGS “$CMAKE_C_FLAGS $OpenMP_C_FLAGS”)
else()
set ( HAVE_OPENMP FALSE)
endif()
else()
set(HAVE_OPENMP 0)
endif()

Step 5: Run CMake GUI, press Configure and check whether OpenMP is enabled or not. If OpenMP is enabled, press Generate to save the configured source to ~/opencv-2.4.6.1/build/ directory, else recheck which step you have missed.

Step 6: Now, we are going to build the configured source.

In order to test that you can collect your own negative and positive data set, create samples and follow the tutorial here. For me, it works like wow :)

追问

我当时配置opencv的时候没用cmake,2.43版本的,现在需要重新配置么?

在Thinkphp 中怎么实现中英文切换啊?

您好,看到了您对“Thinkphp 多语言多模板”的回复。我想请问一下,在Thinkphp 中怎么实现中英文切换啊?我在这篇文章http://www.thinkphp.cn/document/148.html中看到用L方法,请问一下,具体怎么用啊?

参考技术A 我用一维数组写个实例,看懂了再自己去改:
//数组
$info = array(
'id' => '1',
'content' => '你好',
'en_content' => 'welcome'
);
//循环对比
foreach($info as $key => $value)
if ( ereg('['.chr(0xa1).'-'.chr(0xff).']', $value) ) //判断是不是纯中文,是为 true
//是纯中文时,去相应的语言包中做对比,查找当前的中文 $value 对应的英文是什么,并把找到的英文替换掉当前这个中文
$info[$key] = '匹配成功后的英文';
elseif ( ereg('[a-zA-Z]', $value) ) //判断是不是纯英文,是为true
//是纯英文时,去相应的语言包中做对比,查找当前的英文 $value 对应的中文是什么,并把找到的中文替换掉当前这个英文
$info[$key] = '匹配成功后的中文';
else
// echo '既不是纯中文,也不是纯英文,可能有数字混在其中,或者是id 值';


return $info; //最后直接返回$info 即为中英文互换后的数组

以上是关于请问opencv怎么使用多核心啊?的主要内容,如果未能解决你的问题,请参考以下文章

vs2010里编译opencv程序运行后,看不见图像,但在命令行下运行,图像又可以看见。。请问这是怎么回事?

请问OpenCV和OpenGL有啥关系

请问opencv,有一个CvMat型数组,怎么显示成图片?

请问大虾们,opencv如何只对图像选择区域提取特征点

在Ubuntu中使用qt编opencv的程序时出现这怎么办啊?

请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?