又一次坎坷的尝试。
因为需要把realsense的深度图像对齐到彩色空间。
我知道官方的SDK中Projection.cpp的例子。
但是那个程序(C++版)是基于MFC框架写得,一看什么消息什么句柄我就懵比了,而且程序很复杂,我理不清。
也尝试过用Projection类中的方法,或PXCProjection中的MapDepthToColor方法。
出现了很多各种各样的错误,十有八九是我程序写的不对。
如果各位有基于SDK的深度彩色对齐的程序,请告诉我哈~
因为不想花很多很多时间去折腾MFC的那个例子。(但那个例子写得是真好,功能齐全)
所以另辟蹊径,选了librealsense.
在Ubuntu做realsenese开发的伙计们肯定都用的是这个第三方的开发包吧。
github地址:librealsense-master
支持跨平台,Windows当然也能用。
先说一下我的环境:Win10-64位。 VS2013-update 5.
下载下来解压之后,就可以打开\librealsense-master\librealsense.vc12 (因为我是VS2013选了VC12)
根据你自己的编译器选择文件夹。
直接打开那个叫realsense的解决方案工程文件。
然后生成(Build)
这里要注意,如果有什么error link等报错,检查一下你的VS版本,如果是VS2013,请检查一下是否是update 4之后的版本,如果不是,请升级到update 4 或以上。
生成之后就有两个库文件了,不用管。
直接选择Example中的一个项目,设为启动项目。
编译生成运行,就成了。
这里我还遇到了一个诡异的问题。
不管是cpp-alignimages还是 cpp-capture中,只要遇到 buffers.show(dev, rs::stream::depth_aligned_to_color, 0, h/2, s, h-h/2);
深度对齐到彩色流就会有
Microsoft Visual C++ library
Debug Assertion Failed
Program:C:\Windows\SYSTEM32\MSVCP120D.dll
File: e:\vs2013\vc\include\algorithm\
Line:4121
Expression: invalid operator <
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
嘿,我就奇了怪了。
网上找相关问题的解决方案,说什么重新下载MSVCP120.dll文件,我觉得太不靠谱。
看到有大神说,换成release版本编译。
我就切换成了release模式:
在生成---配置管理器中把项目配置为relsense
在属性--C/C++ --优化中 把优化选为 已禁用(Od) 全程优化 选为 否
在项目运行页 顶栏 调试器后边的 解决方案配置 选为 release。然后编译生成运行就可以正常运行了。
为什么debug模式不能运行??
怎样才能在debug模式下运行??
好了,我看了眼librealsense的example中的深度彩色对齐的例子。
它竟然是用了GLFW,难道用了opengl吗?
不管是GLFW还是opengl我都是第一次见到,并不知道怎样将它生成的图像保存下来。
所以找到了这篇博客的方法:http://blog.csdn.net/wi162yyxq/article/details/69390006
使用librealsense+openCV写得。good!好用!感谢这位博主!
我是直接在 \librealsense-master\librealsense.vc12 这个文件夹下新建的工程。
把它自带的属性表和opencv的属性表都添加到工程里了。
要把example.hpp的头文件添加进去,到头文件里哈,添加现有项。
如果有#include未识别的,就在属性页的,配置属性- - C/C++ - -常规- -附加包含目录中 把你想include的文件的位置(路径)写上去就好了。