我只是想在此question中找到的OpenCV中使用tbb处理多个图像。
以下是我的示例代码。
#include <opencv2/opencv.hpp>
#include "tbb/tbb.h"
using namespace tbb;
using namespace cv;
using namespace std;
void processBinary(Mat image) {
//image processing
Mat gray;
cvtColor(image, gray, CV_BGR2GRAY);
}
int main( )
{
Mat m1, m2, m3, m4;
m1 = imread("test1.jpg", IMREAD_COLOR); // Read the file
m2 = imread("test2.jpg", IMREAD_COLOR); // Read the file
m3 = imread("test3.jpg", IMREAD_COLOR); // Read the file
m4 = imread("test4.jpg", IMREAD_COLOR); // Read the file
std::vector<cv::Mat> input = { m1, m2, m3, m4 };
tbb::parallel_for(size_t(0), input.size(), size_t(1), [=](size_t i) {
processBinary(input[i]);
});
return 0;
}
我使用以下命令运行文件-
g++ test1.cpp -a app `pkg-config --cflags --libs opencv
我遇到以下错误:
/usr/bin/ld: /tmp/cc79ceOq.o: undefined reference to symbol '_ZN3tbb18task_group_contextD1Ev'
//usr/lib/x86_64-linux-gnu/libtbb.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
感谢您的帮助!