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

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<geometry::RGBDImage> 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<geometry::RGBDImage>(o3d_cv(color), *rgbd->depth_.Downsample());

			if (j == 0)continue;
			cv::imshow("color image", color);
			cv::waitKey(1);
		}

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenCVOpen3D是两个功能强大的开源视觉库,用于图像处理和计算机视觉任务。 OpenCV是一个专注于计算机视觉和图像处理的库,提供了丰富的函数和工具,用于处理图像、视频、特征提取、物体识别等任务。它支持各种编程语言,包括C++、Python等,并且具有广泛的应用领域,包括医学影像处理、机器人视觉、人脸识别等。OpenCV提供了丰富的函数和算法,可以进行图像的读取、显示、换、滤波、特征提取、目标检测等操作。同时,OpenCV还提供了与其他库的接口,比如NumPy和Matplotlib,使得使用OpenCV更加便捷。 Open3D是一个专注于三维数据处理和计算机视觉的库。它提供了一系列用于处理和可视化三维数据(如点云、网格、深度图、RGB-D图像等)的工具和算法。Open3D支持C++和Python等编程语言,并且提供了丰富的功能,包括点云配准、三维重建、物体识别等。Open3D还提供了可视化工具,可以方便地查看和分析三维数据。同时,Open3D还提供了与其他库的接口,比如NumPy和Pandas,可以方便地进行数据的换和处理。 在引用中,提供了一些将Open3D的图像数据换为OpenCV的Mat格式以及将OpenCV的Mat格式换为Open3D的图像数据的函数。这些函数可以帮助你在OpenCVOpen3D之间进行数据的换和交互。 引用提供了OpenCVOpen3D的版本信息。 引用列出了Open3D库中的一些常用模块和类。 综上所述,OpenCVOpen3D是两个功能强大的开源视觉库,分别用于二维图像处理和三维数据处理,它们提供了丰富的函数和工具,可以帮助你进行各种图像处理和计算机视觉任务。您可以根据具体的需求选择使用哪个库,或者结合使用它们来完成更复杂的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值