将 cv::Mat 转换为穿山甲::图像
Convert a cv::Mat to a pangolin::Image?
我有一个应用程序可以接收pangolin::Image
格式的rgbd图像。我想发送一个cv::Mat
.如何将 cv::Mat 转换为穿山甲::图像?
(穿山甲:https://github.com/stevenlovegrove/Pangolin)
图像标题:
https://github.com/stevenlovegrove/Pangolin/blob/master/include/pangolin/image/image.h
目前格式为:
pangolin::ManagedImage<unsigned short> firstData(640, 480);
pangolin::Image<unsigned short> firstRaw(firstData.w, firstData.h, firstData.pitch, (unsigned short*)firstData.ptr);
然后通过应用程序发送firstRaw
。
如果我现在有:
cv::Mat frame = cv::imread(filepath,0);
什么是从frame
到firstRaw
的转换?
我从这个开始:
int loadDepthFromMat(cv::Mat filepath, pangolin::Image<unsigned short> & depth)
{
int width = filepath.cols;
int height = filepath.rows;
pangolin::ManagedImage<unsigned short> depthRaw(width, height);
pangolin::Image<unsigned short> depthRaw16((unsigned short*)depthRaw.ptr, depthRaw.w, depthRaw.h, depthRaw.w * sizeof(unsigned short));
//copy data
}
谢谢。
因此,假设您已将cv::Mat转换为具有正确音高(或通道,在OpenCV中)的无符号短格式,您只需使用memcpy。
(我已经将你的cv::Mat从filepath重命名为mat(为什么它被称为filepath?)):
memcpy((void*)depthRaw16.begin(), (void*)mat.data, mat.total() * mat.elemSize());
同样,请确保您的穿山甲图像具有相同的尺寸,并确保将 cv::Mat 转换为无符号短裤。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 如何使用CImg打开图像?
- 如何使用 OpenCV 解码在两个 UWP 应用之间发送的图像字节?
- 将 cv::Mat 转换为穿山甲::图像