OpenCV与Open3D之间的图像格式转化

所属分类:技术知识发布于 2021-10-10 21:04:24被阅读0

Open3D Image 转 OpenCV Mat

cv::Mat o3d_cv(const geometry::Image& A) {

int type = A.num_of_channels_ == 1 ? CV_16UC1 : CV_8UC3;//depth, otherwise color

return  cv::Mat(A.height_, A.width_, type, (void*)A.data_.data());

}

OpenCV Mat 转 Open3D Image

geometry::Image o3d_cv(const cv::Mat& A) {

geometry::Image B;

int bytes_per_channel = (A.depth() / 2 + 1);//refer to the fuction depth

B.Prepare(A.cols, A.rows, A.channels(), bytes_per_channel);

std::memcpy(B.data_.data(), A.data, A.total() * A.channels() * bytes_per_channel);

return B;

}

对Open3D RGBD影像下采样四倍

std::shared_ptr rgbd=geometry::RGBDImage::CreateFromColorAndDepth(color, depth, 1, 3000.0, false);

for (int j = 0; j < 2; j++) {

cv::Mat color = o3d_cv(rgbd->color_);

cv::resize(color, color, cv::Size(color.cols / 2, color.rows / 2));

rgbd = make_shared(o3d_cv(color), *rgbd->depth_.Downsample());

 

if (j == 0)continue;

cv::imshow("color image", color);

cv::waitKey(1);


————————————————

版权声明:本文为CSDN博主「断、舍、离」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/h1063135843/article/details/114288287


如需转载,请注明文章出处和来源网址:http://www.litemaze.com/News_f3543bf1.aspx

光沦科技(深圳)有限公司

公司聚焦智能制造及智慧物联领域
3D视觉系统可与国内外多款机械臂、协作机器人
物流自动分拣设备,AGV小车、无人叉车等自动化设备相结合

联系我们CONTANT US
电话:0755-2665-8039
手机:15099927270
地址:深圳市光明区云智科技园B2-1512-1513
QQ咨询 微信扫一扫添加微信咨询 电话咨询 在线咨询 返回顶部