Q_DECL_EXPORT int main(int argc, char *argv[]) { QScopedPointer<QApplication> app(createApplication(argc, argv)); cv::Mat img, img2, out, out2; img = cvLoadImage("Imagenes/city_night.jpeg"); img2 = cvLoadImage("Imagenes/city_night.jpeg"); out.create(img.size(), img.type()); out2.create(img2.size(), img2.type()); QElapsedTimer timer; qint64 nanoSec, nanoSec2; timer.start(); //Lo hace todo en un solo hilo cv::threshold(img2,out2,66,255,1); nanoSec = timer.nsecsElapsed(); qDebug() << nanoSec; timer.restart(); // create 8 threads and use TBB cv::parallel_for_(cv::Range(0, 8), Parallel_process(img, out, 5, 8)); nanoSec2 = timer.nsecsElapsed(); qDebug() << nanoSec - nanoSec2; cv::imshow("image", out2); cv::imshow("blur", out); return app->exec(); }
int main(int argc, char* argv[]) { cv::Mat img, out; img = cv::imread("Viereck_7.JPG"); out = cv::Mat::zeros(img.size(), CV_8UC3); int thread_count = 4; cv::setNumThreads(thread_count); while (1) { double t = (double)getTickCount(); img = cv::imread("IMG_2825.JPG"); out = cv::Mat::zeros(img.size(), CV_8UC3); // create 8 threads and use TBB cv::parallel_for_(cv::Range(0, thread_count), Parallel_process(img, out, 5, thread_count)); cv::imshow("image", img); cv::imshow("blur", out); t = ((double)getTickCount() - t) / getTickFrequency(); printf("\rTime: %0.4f (%d)", t, cv::getNumThreads()); cv::waitKey(1); } return(1); }