C++ OpenCV抑制OpenMP吗?

C++ OpenCV抑制OpenMP吗?,c++,opencv,openmp,C++,Opencv,Openmp,我有一个关于OpenCV和OpenMP的问题 我曾经使用OpenMP并行化我的代码,因为我必须在大型图像上进行一些繁重的计算。到目前为止(我还没有使用OpenCV),并行化对我来说很好 然后我需要OpenCV库的一些功能。因为我在代码中加入了OCV,所以并行化不再有效。尽管我没有并行化任何OCV函数。此外,即使我只链接OCV库(core、imgproc、imgcodecs),并行化也不再有效 那怎么可能呢?我如何(再次)启用并行化 我在OpenSuSE 15.1系统上使用OpenCV 4.1。I

我有一个关于OpenCV和OpenMP的问题

我曾经使用OpenMP并行化我的代码,因为我必须在大型图像上进行一些繁重的计算。到目前为止(我还没有使用OpenCV),并行化对我来说很好

然后我需要OpenCV库的一些功能。因为我在代码中加入了OCV,所以并行化不再有效。尽管我没有并行化任何OCV函数。此外,即使我只链接OCV库(core、imgproc、imgcodecs),并行化也不再有效

那怎么可能呢?我如何(再次)启用并行化

我在OpenSuSE 15.1系统上使用OpenCV 4.1。IDE是代码::块。从官方repos安装的所有库(意思是:我没有clou如何使用cmake…)

谁能给我一个提示,怎么解决这个问题

多谢各位


Phtagen

本安装指南假设操作系统是Ubuntu。我发布它是因为它可能会帮助解决你的问题

安装OpenCV依赖项

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libv4l-dev
sudo apt-get install libcanberra-gtk-module libcanberra-gtk3-module
下载带有一些额外模块的OpenCV版本的源代码

CV_DISTRO=3.4.0
git clone --branch $CV_DISTRO https://github.com/opencv/opencv.git opencv_$CV_DISTRO --depth 1
git clone --branch $CV_DISTRO https://github.com/opencv/opencv_contrib.git opencv_contrib_$CV_DISTRO --depth 1
然后构建OpenCV

cd opencv_$CV_DISTRO
mkdir -p build
cd build/
cmake -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib_$CV_DISTRO/modules \
    -D WITH_TBB=ON \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D WITH_OPENMP=ON ..
make -j7
sudo make install
sudo ldconfig

请随意编辑此帖子。

可能相关:谢谢。已经找到了。但这就是为什么我写这篇文章,我不知道如何使用cmake。我想可能有一种方法可以在IDE中设置编译器标志?我不熟悉OpenSuSE,但我假设您使用zypper(相当于apt get)安装了OpenCV。要启用OpenMP,您需要自己从源代码编译OpenCV。我想问的是,您需要OpenMP和OpenCV吗?因为OpenCV是一个高度优化的库,它的函数是矢量化的。所以你是并行像素访问吗?例如,
img.at(y,x)=0这样的线。如果是这样,那么OpenMP应该可以正常工作。我已经用过很多次了。如果您共享代码以及如何对性能和计时结果进行计时,那就太好了。@Mika:我发现OpenMP不起作用,因为我运行的是KSsysGuard,它是SuSEs任务管理器。我的旧代码(没有OpenCV)在所有内核上运行。整个程序的运行时间约为2.5小时。启用OpenCV的版本只在一个内核上运行,完整的程序大约需要13个小时的运行时间。很抱歉我的回复太晚。谢谢你的解决方案。事实上,我正在努力将这个从Ubuntu“翻译”到OpenSuSE,但没有成功……你可以提供一些细节,以便我可以帮助你。酷,我甚至不知道有聊天室存在^^^,所以,是的,也许我们可以这样做。什么时候对你合适?@Phtagen你可以随时写作。这个解决方案非常有效。。。非常感谢你!!!