进程间通信(内存映射)方式传输CV::Mat图像数据

关于内存映射的进程间通信,我直接一篇博客已经详细介绍过,这里只是再次补充一个传输图像的应用,因为OpenCV中Mat格式较为常用(并且也很方便传输),刚好用到,就做个笔记好了。应用的场景是B进程中的Mat传给A进程,A进程接受并恢复为Mat格式。其它也没什么好说的,有细节为题就参见我之前的博客,那么开始吧。

阅读更多

MFC/C++多线程

操作系统中线程和进程的概念就不再强调,这篇博客主要介绍在Windows中多线程的创建、挂起、终止、通信、同步,大都是代码层面的介绍,这也是个人的笔记,摘抄自网络。

如果对这些概念不熟悉,建议先移步百度,或者操作系统教材,如果你支持查阅手册或者API参数讲解,那么希望这篇博客能给你答案。话不多说,开始吧。

阅读更多

Protobuf反射详解

所谓反射机制,就是能够在运行时知道任意类的所有属性和方法,能够调用任意对象的任意方法和属性。这种动态获取的信息以及动态调用对象方向的功能称为反射机制。

不像Jave等语言,C++本身没有反射机制,在使用C++版本Protobuf时,protobuf通过proto文件产生响应的message和service,protobuf可以通过proto文件提供反射机制,程序在运行时可以通过proto获取任意message和任意service的属性和方法,也可以在运行时调用message的属性和方法。

阅读更多

ROS学习笔记(一)ROS环境搭建

ROS:Robot Operating System

ROS是开源的机器人次级操作系统,其设计的首要目标是在机器人研发领域提高代码复用率,是一种分布式处理框架(Nodes)。它提供类似于操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能执行、程序间的消息传递、程序发行包管理等。

ROS提供多语言支持,利用简单的、语言无关的接口定义消息传送。ROS还利用了很多已经存在于开源项目的代码,如OpenCV中借鉴视觉算法、从OpenRAVE借鉴了规划算法等。DJI、iRobot等机器人公司都在使用ROS。

阅读更多

Sublime中设置Protobuf语法支持

Sublime是一款优秀的编辑器,强大的拓展使得数十种语法的高亮提示和自动补全成为可能。Protobuf谷歌的数据交换格式,独立于语言,非常易用。在Sublime中可以通过扩展插件的方式设置Proto文件的语法高亮,这对于常常使用Protobuf的开发者有很大帮助。

阅读更多

C++Intel/VS编译器编译Boost库

        在使用Intel编译器(icc)时,如果还想调用Boost库,那么icc会自动调用icc编译的boost库,于是这篇博客就介绍了如何使用icc编译Boost库,并且附带Boost库编译时的参数说明,你可以按照这份说明编译出你想要的库版本。(如果你使用默认编译器,此博客也可做参考,除了编译器选择部分不同之外,其它都一样)

阅读更多

快速配置gflags/glog/protobuf

        如果你已经配置好opencv,那么下载安装包,自解压到和opencv一样的目录,你在配置opencv时,这些库由于和opencv共享目录,所以也就顺便配置好了,然后就是需要手动链接库,lib列表已经在压缩包中存成txt文档,所以配置就是copy一遍就可以了,另外注意,博主只编译了MD的库,如果你习惯使用opencv静态库,可以下载源码自行编译,也可以参照博主原来写的博客,所以库都以MT方式编译了。另外,还需要安装Intel编译器。

阅读更多

Intel IPP库配置教程

        了解OpenCV的同学应该都对IPP加速有所耳闻,IPP库是Intel的加速库,其中集成了多种高性能的操作,基于CPU庞大复杂的指令系统,对程序做并行优化非常有帮助(有点类似于DSP上的数学库),相比之下,另一种并行加速方式openmp就显得捉襟见肘了。这篇博客将帮助我们配置IPP库。

阅读更多

python版protobuf的安装和使用

        谷歌的开源项目protobuf,官方支持四种语言版本,C++、Java、Go、Python,使用protobuf的诸多优点就不多介绍了,在我之前的博客中使用过C++版本的protobuf,如果有兴趣可以参考,这里提供python版protobuf的使用方法,博主在学习caffe,将protobuf数据存为hdf5格式,于是protobuf就也成了C++和python数据交互的接口了,好,我们开始吧!

阅读更多

Windows下多个库的快速配置——opencv/ boost/opengl/glew/freeglut/glog/protobuf

        点击下载,解压好之后只有一个usr目录,其中包含了opencv、opengl、glew、freeglut、glog、protobuf等,你只需要经过下列三个步骤,就可以一次性永久配置好环境,当然,如果你对库原本就有一些理解,那你应该马上就懂了,如果你常在Linux上配置环境,那你会发现我做的事情其实很简单,就是把各个库集中起来,有点类似于linux中库的安装方法,因此配置变得非常便捷了,博主采用全静态编译,在使用时只需要注意使用静态库就可以了。让我们开始吧。

阅读更多