当前位置: 首页 > news >正文

公司网站是怎么做的最近三天的新闻热点

公司网站是怎么做的,最近三天的新闻热点,被忽悠去做网销了,电子商务毕业论文题目大全集👑主页:吾名招财 👓简介:工科学硕,研究方向机器视觉,爱好较广泛… ​💫签名:面朝大海,春暖花开! open3dopencv实现矩形框裁剪点云操作(C&#xff…

👑主页:吾名招财
👓简介:工科学硕,研究方向机器视觉,爱好较广泛…
​💫签名:面朝大海,春暖花开!

open3d+opencv实现矩形框裁剪点云操作(C++)

  • 1,引言
  • 2,相关测试数据资源如下
  • 3,彩色图、深度图和相机内参
  • 4,C++代码
  • 5,最终效果

1,引言

  针对彩色图和深度图以及相机内参可以合成点云,而对某一区域的点云数据截取,可以通过二维ROI区域截取深度图及彩色图出来。不过不能整张图像裁剪,其图像大小不能变,把除了截取区域外的给置为0就行了。

2,相关测试数据资源如下

  本人上传了一个用于三维重建测试的公开数据集,内含彩色图、深度图、相机内参、相机位姿等相关数据,可用于相关测试
https://download.csdn.net/download/qq_44870829/90236553
在这里插入图片描述

3,彩色图、深度图和相机内参

在这里插入图片描述
在这里插入图片描述

4,C++代码

#include <string>
#include <iostream>
#include "Open3D/Open3D.h"
#include <opencv2/opencv.hpp>using namespace std;open3d::geometry::Image o3d_cv(const cv::Mat& A) {open3d::geometry::Image B;int bytes_per_channel = (A.depth() / 2 + 1);//refer to the fuction depthB.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;
}int main(int argc, char* argv[]) {//--------------------------------------1,相关参数----------------------------------//要截取的ROI区域大小int x = 285;int y = 363;int w = 150;int h = 120;//相机内参设置int width = 640;   // 输入图像的宽度int height = 480;  // 输入图像的高度double fx = 585; // x轴焦距 double fy = 585; // y轴焦距double cx = 320; // 相机原点的x坐标double cy = 240; // 相机原点的y坐标// 方式一auto intrinsic = open3d::camera::PinholeCameraIntrinsic(width, height, fx, fy, cx, cy); // 使用自定义内参方式二open3d::camera::PinholeCameraIntrinsic intrinsic = open3d::camera::PinholeCameraIntrinsic();intrinsic.SetIntrinsics(width, height, fx, fy, cx, cy);//open3d::camera::PinholeCameraIntrinsic intrinsic = open3d::camera::PinholeCameraIntrinsic(//	open3d::camera::PinholeCameraIntrinsicParameters::PrimeSenseDefault); // 使用默认内参// -RGBD图像参数设置double depth_scale = 1000.0; // 深度值的缩放倍数double depth_trunc = 3.0;    // 深度值的截断系数bool convert_rgb_to_intensity = false; // 是否将彩色图转为强度图//-------------------------------------2,读取图像并裁剪-------------------------------------//用opencv读取二维彩色图及深度图像,将某一ROI区域裁剪出来,然后再进行点云生成cv::Mat colorimg = cv::imread("frame-000276.color.jpg");cv::Mat depthimg = cv::imread("frame-000276.depth.png", -1);  //深度图要读取原图//制作ROI区域掩膜cv::Mat templateImg_color = cv::Mat::zeros(colorimg.size(), colorimg.type());cv::Mat mask = cv::Mat::zeros(colorimg.size(), colorimg.type());cv::rectangle(mask, cv::Point(x, y), cv::Point(x + w, y + h), cv::Scalar(255, 255, 255), -1);//矩形的两个顶点,两个顶点都包括在矩形内部colorimg.copyTo(templateImg_color, mask);cv::Mat templateImg_depth = cv::Mat::zeros(depthimg.size(), depthimg.type());cv::Mat mask2 = cv::Mat::zeros(depthimg.size(), CV_8UC1);cv::rectangle(mask2, cv::Point(x, y), cv::Point(x + w, y + h), cv::Scalar(255, 255, 255), -1);//矩形的两个顶点,两个顶点都包括在矩形内部//cv::bitwise_and();depthimg.copyTo(templateImg_depth, mask2);//-------------------------------------3,显示未裁剪前的原始点云-------------------------------------open3d::geometry::Image color_o = o3d_cv(colorimg);open3d::geometry::Image depth_o = o3d_cv(depthimg);// 生成RGBD图像std::shared_ptr<open3d::geometry::RGBDImage> rgbd_image_o = open3d::geometry::RGBDImage::CreateFromColorAndDepth(color_o,                    // 输入的彩色图像depth_o,                    // 输入的深度图像depth_scale,              // 深度值的缩放倍数depth_trunc,              // 深度值大于该值将被截断为0convert_rgb_to_intensity);// 设置是否将彩色图像转为强度图// RGBD转点云auto pcd_o = open3d::geometry::PointCloud::CreateFromRGBDImage(*rgbd_image_o, intrinsic);open3d::visualization::DrawGeometries({ pcd_o });//-------------------------------------4,显示并保存裁剪后的点云-------------------------------------open3d::geometry::Image color = o3d_cv(templateImg_color);open3d::geometry::Image depth = o3d_cv(templateImg_depth);直接使用open3d读取图像//open3d::geometry::Image color, depth;//open3d::io::ReadImage("0.png", color); // 读取彩色图像//open3d::io::ReadImage("0_depth.png", depth); // 读取深度图像//将裁剪后的深度图及彩色图转换成点云并显示保存//输出图像基本信息open3d::utility::LogInfo("Reading RGBD image : ");open3d::utility::LogInfo("     Color : {:d} x {:d} x {:d} ({:d} bits per channel)",color.width_, color.height_, color.num_of_channels_,color.bytes_per_channel_ * 8);open3d::utility::LogInfo("Depth : {:d} x {:d} x {:d} ({:d} bits per channel)",depth.width_, depth.height_, depth.num_of_channels_,depth.bytes_per_channel_ * 8);// 生成RGBD图像std::shared_ptr<open3d::geometry::RGBDImage> rgbd_image = open3d::geometry::RGBDImage::CreateFromColorAndDepth(color,                    // 输入的彩色图像depth,                    // 输入的深度图像depth_scale,              // 深度值的缩放倍数depth_trunc,              // 深度值大于该值将被截断为0convert_rgb_to_intensity);// 设置是否将彩色图像转为强度图// RGBD转点云auto pcd = open3d::geometry::PointCloud::CreateFromRGBDImage(*rgbd_image, intrinsic);open3d::visualization::DrawGeometries({ pcd });//5.保存点云文件 保存open3d::io::WritePointCloudToPCD("moban.pcd", *pcd, false);//open3d::io::WritePointCloudToPCD("search.pcd", *pcd, false);return 0;
}

5,最终效果

未裁剪前的点云
在这里插入图片描述

裁剪后的点云
在这里插入图片描述

http://www.hkea.cn/news/778438/

相关文章:

  • 如何在相关网站免费做宣传广告免费建立个人网站官网
  • 做搜狗网站优化首自己建立网站步骤
  • 企业资质查询官方网站最好的小说网站排名
  • 乐平网站设计北京互联网公司
  • 朝阳企业网站建设方案费用郑州网络营销学校
  • 建站行业发展百度广告代运营
  • 如何做积分商城网站鸡西seo顾问
  • p2p网站开发文档免费b站软件下载
  • 有没有做q版头像的网站今天百度数据
  • wordpress页面修改插件seo顾问阿亮
  • 政府门户网站建设标准国际婚恋网站排名
  • 上海青浦网站建设郑州靠谱seo电话
  • 网站建设怎么样seo专家招聘
  • 在网盘上怎么做自己的网站整站优化推广
  • php建设网站实训百度搜索引擎的总结
  • 怎么在360自己做网站重庆seo排名收费
  • 外贸网站建设浩森宇特教育培训报名
  • 网站开发价目表深圳市前十的互联网推广公司
  • php做视频直播网站关键词竞价广告
  • 重庆怎么站seo深圳网络推广团队
  • 自学软件网站开发网络推广怎样做
  • 最新版的wordpress怎么添加特征图优化关键词的作用
  • 深圳做网站google推广网络营销和传统营销的区别和联系
  • 专业做网站的顺德公司网络推广怎么收费
  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口