Mat_on_Pangolin

        感觉pangolin的资料真是少之又少,而自己要用的ORB_SLAM2的显示界面又是用到它,所以还是花了些时间读了读他的代码,以下是自己写的将opencv的cv::Mat类型图像显示在Pangolin界面上程序笔记(https://github.com/wangzhaodong123/Mat_on_Pangolin ),如有错误,欢迎指正([email protected])。

参考博客:Pangolin 安装及其使用

地址:(https://blog.csdn.net/c602273091/article/details/65441315

将opencv的cv::Mat类型图像显示在Pangolin界面上:(主要函数代码)

Ø  //图像显示“窗口”,位置与按键栏紧邻,大小640*480

pangolin::View&d_image = pangolin::Display("image")

.SetBounds(1,0,1,0)

.SetLock(pangolin::LockRight,pangolin::LockBottom);

              SetBounds()函数是设置窗口位置的函数,下图是对其参数的简单描述:

Ø  //pangolin的输入图像数组

    unsignedchar* imageArray = new unsigned char[3*width*height];

    pangolin::GlTexture imageTexture(width,height);

    具体的,pangolin需要一个类似于一维数组的容器来保存图像数据,因为我们要加载的图像是3通道的,所以共3*width*height个元素;

Ø  void setImageData(unsignedchar * imageArray, cv::Mat image){};

        定义的将cv::Mat数据存放到imageArray地址下的函数,其实就是遍历图像的所有元素,并按顺序存放到指定地址下;

Ø  setImageData(imageArray,image_initial);

    imageTexture.Upload(imageArray,GL_RGB,GL_UNSIGNED_BYTE);d_image.Activate();

     //设置图片显示的色调好像是

    glColor3f(1.0,1.0,1.0);

    //图像翻转显示函数

    imageTexture.RenderToViewportFlipY();

        这些都是pangolin的基本显示函数,需要放在一个while下,不断循环刷新显示;



基本用的先是这些,如果后续再用到别的,我会继续更新。


猜你喜欢

转载自blog.csdn.net/qq_36420239/article/details/80416648
Mat