多线程本地图片载入演示样例【OpenCV】【Pthread】
Pthread barrier的简单使用演示样例:
C++代码例如以下:
- // ThreadingLoadImages.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <pthread.h>
- #include <opencv2/opencv.hpp>
- #define THREADS 3
- // Barrier variable
- pthread_barrier_t barr;
- struct Param
- {
- cv::Mat img;
- int index;
- char* file_path;
- } params[THREADS];
- void* entry_point(void* arg)
- {
- Param* p = (Param*)arg;
- int index = p->index;
- char* file_path = p->file_path;
- p->img = cv::imread(file_path);
- printf("The %d thread is doing job! \n", index);
- // Synchronization point
- int rc = pthread_barrier_wait(&barr);
- if (rc != 0 && rc != PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf("Could not wait on barrier\n");
- exit(-1);
- }
- }
- int main()
- {
- pthread_t thr[THREADS];
- //pthread_mutex_init(&g_mtx, NULL);
- // Barrier initialization
- if (pthread_barrier_init(&barr, NULL, THREADS))
- {
- printf("Could not create a barrier\n");
- return -1;
- }
- //int t[THREADS];
- params[0].file_path = "../micky.png";
- params[1].file_path = "../umbrella.png";
- params[2].file_path = "../beard.jpg";
- for (int i = 0; i < THREADS; ++i)
- {
- //t[i] = i;
- params[i].index = i;
- if (pthread_create(&thr[i], NULL, &entry_point, (void *)¶ms[i]))
- {
- printf("Could not create thread %d\n", i);
- return -1;
- }
- }
- for (int i = 0; i < THREADS; ++i)
- {
- if (pthread_join(thr[i], NULL))
- {
- printf("Could not join thread %d\n", i);
- return -1;
- }
- }
- printf("All threads finish jobs! \n");
- for(int i=0; i<THREADS; i++)
- cv::imshow(params[i].file_path, params[i].img);
- cv::waitKey(0);
- return 0;
- }
效果如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相关资料:pthread线程使用小结
多线程本地图片载入演示样例【OpenCV】【Pthread】的更多相关文章
- Android利用Volley异步载入数据完整具体演示样例(二)
MainActivity例如以下: package cc.y; import android.app.Activity; import android.content.Context; import ...
- OpenCV LDA(Linnear Discriminant analysis)类的使用---OpenCV LDA演示样例
1.OpenCV中LDA类的声明 //contrib.hpp class CV_EXPORTS LDA { public: // Initializes a LDA with num_componen ...
- Android之——多线程下载演示样例
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46883927 一.概述 说到Android中的文件下载.Android API中明 ...
- Java多线程演示样例(模拟通话,sleep,join,yield,wait,notify,Semaphore)
主线程等待子线程的多种方法 synchronized浅析 sleep 是静态方法,Thread.sleep(xx)谁调用谁睡眠. join 是合并方法.当前线程调用其它线程xx.join()则等到xx ...
- 通过Canvas及File API缩放并上传图片完整演示样例
创建一个只管的用户界面,并同意你控制图片的大小.上传到server端的数据,并不须要处理enctype为 multi-part/form-data 的情况.只一个简单的POST表单处理程序就能够了. ...
- Eureka 的 Application Service client的注冊以及执行演示样例
Eureka 服务器架起来了(关于架设步骤參考博客<Linux 下 Eureka 服务器的部署>),如今怎样把我们要负载均衡的服务器(也就是从 Application Cl ...
- Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器)
Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器) 本篇博客介绍Cocos2d-x 为我们提供的一个类--AssetsManager在Lua中的使用样例,效果 ...
- Android模糊演示样例-RenderScript-附效果图与代码
本文链接 http://blog.csdn.net/xiaodongrush/article/details/31031411 參考链接 Android高级模糊技术 http://s ...
- 使用Dropzone上传图片及回显演示样例
一.图片上传所涉及到的问题 1.HTML页面中引入这么一段代码 <div class="row"> <div class="col-md-12" ...
随机推荐
- gitlab的docker安装,非标准端口,如何处理?
这个问题的定义是: 如果我们不是用的80端口对外提供服务, 但gitlab的docker容器里的nginx却是80端口, 那么,在我们clone代码时,带的Http地址也会是80端口,这显然会出现问题 ...
- 跨域资源共享CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而 ...
- AOJ 2249 Road Construction (dijkstra)
某国王需要修路,王国有一个首都和多个城市,需要修路.已经有修路计划了,但是修路费用太高. 为了减少修路费用,国王决定从计划中去掉一些路,但是需要满足一下两点: 保证所有城市都能连通 所有城市到首都的最 ...
- php用json_encode中文问题
echo json_encode($arr,JSON_UNESCAPED_UNICODE); 用这个中文就不会被转码了
- h5的图片预览
h5的图片预览是个好东西,不需要保存到后台就能预览图片 代码也很短 <!DOCTYPE html> <html> <head> <meta charset=& ...
- Centos 6.5安装mysql
转载自:https://www.cnblogs.com/leffss/p/8512773.html 一.安装前准备 安装采用二进制包方式,软件包5.7.19版本下载地址:https://dev.mys ...
- Python库资源大全
转载地址:https://zhuanlan.zhihu.com/p/27350980 本文是一个精心设计的Python框架.库.软件和资源列表,是一个Awesome XXX系列的资源整理,由BigQu ...
- 谷歌浏览器升级引起的BUG
问题描述:在谷歌浏览器中,电脑打开A系统,添加附件时无法弹框. 预期结果:添加附件,可以打开弹框. 问题分析:谷歌浏览器自动升级,自55.0.2883.75后发布的新版本均自动停用Flash插件. 解 ...
- centOS7升级git版本到2.7.3
CentOS 自带的git版本太低,需要升级到2.1.2版本以上才能使用gitea. 升级方法: 1.安装所需软件包 yum install curl-devel expat-devel gettex ...
- Codeforces.833B.The Bakery(线段树 DP)
题目链接 \(Description\) 有n个数,将其分为k段,每段的值为这一段的总共数字种类,问最大总值是多少 \(Solution\) DP,用\(f[i][j]\)表示当前在i 分成了j份(第 ...