2022-4-21 vrep深度相机Kinect 远程c++(qtcreator) opencv 保存

2023-05-16

从模型库里拉出来一个Kinect相机放在合适位置:

设置好像素,不是标准像素值vrep有警告(可能数据有误),忽略即可
在这里插入图片描述

同样的像素值,在c++ 端:

    int w = 640, h =480;/*640,480*/
    simxInt resolution[2] = {0,0};
    simxFloat mem[32]={0};
    simxFloat *point = mem;
//    simxFloat ** depth1 = &point;
    simxFloat ** depth1 = new simxFloat *[w*h];
    
    int res = simxGetVisionSensorDepthBuffer(m_vrepshow.client_id,m_vrepshow.depthcam_handle,colorresolution,depth1, simx_opmode_blocking);
    if(res == simx_return_ok)
    {
        w = resolution[0];
        h = resolution[1];
        cv::Mat depth2(Size(w,h),CV_8UC1);
         cout << "resolution : x = " << resolution[0] << " . y = " << resolution[1] << endl;
//        cout << "depth buffer: " <<setprecision(3) <<endl;
//        for(int i=0;i<(w*h);++i) cout << (*(*depth1+i)) << endl;
        for(int i=0;i<h;++i)
        {
            for(int j=0;j<w;++j)
            {
            	//最坑的就是这里,对返回深度矩阵的值进行遍历
                depth2.at<uchar>(i,j) = (uchar)((*(*depth1+j + i*w))*255);
            }
        }
        cv::Mat depth3;
        cv::flip(depth2,depth3, 0);
        
        char filename[64];
        sprintf(filename,"../images/vrepdepth%d.jpg",index);
        imwrite(filename,depth3);
        cout << "save depth image "<< filename <<endl;

保存的图片:深度图变成了单通道灰度图

在这里插入图片描述
深度信息已经被vrep归一化了,所以需要自己再远程处理,归一化规则为
depth = (dis-mindistance)/(maxdistance-mindistance)
(dis 默认小于maxdistance,超出该distance的像素点数据就是max)
mindis 和 maxdis 是 vrep 中设置的深度相机有效范围
在这里插入图片描述
反推规则:
先得到像素点的数据信息:即深度 depth,
distance = depth*(maxdistance - mindistance)+ mindistance.

max-min 即为超出最小有效距离之外的距离的放缩系数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022-4-21 vrep深度相机Kinect 远程c++(qtcreator) opencv 保存 的相关文章

  • WebRTC 与 python

    我想用 python twisted 制作一个流服务器 它接收 WebRTC 视频流 然后对其应用一些 OpenCV 算法 但是我找不到 WebRTC 的 python 模块 如何使用 python twisted 发送和接收 WebRTC
  • 补丁优先级及其对 Criminsi 基于范例的修复的影响

    我正在尝试实现基于示例的修复 如提议的Criminsi http research microsoft com pubs 67276 criminisi tip2004 pdf等等人 以其原始格式 在进行进一步优化之前 我有一些理论上的疑问
  • 使用 Python (OpenCV) 中的霍夫线变换从模拟时钟读取时间

    我一直在尝试编写一个程序 在图片上找到钟面 然后继续从中读取时间 定位效果相当好 但阅读时间 不是那么多 cv2 HoughLines 函数返回线条所在的角度 从图像顶部开始测量 以及它们与图像左上角的距离 经过一些调整后 我成功地说服我的
  • 即使 CMake 中的 WITH_CUDA=ON,OpenCV 也不会使用 CUDA 进行构建

    我尝试使用 CMake GUI 版本 构建 OpenCV 3 1 以启用 Cuda 我已经安装了 Cuda 7 5 64 位版本 CMake 自动找到了 Cuda 工具包的正确路径 我确保WITH CUDA值设置为ON 并按下配置 这是我对
  • 如何在 OpenCV 中绘制图像的 3D 直方图

    更新 我找到更多例子 我现在可以做到 我可以在 3d 中绘制多个直方图吗 https stackoverflow com questions 35210337 can i plot several histograms in 3d 我知道这
  • 如何忽略 OpenCV python 中的内部黑色轮廓?

    在上图中 我只需要以下轮廓 8 7 0 2 4 里面每隔一个轮廓都是黑色的空盒子 有没有办法使用 cv2 RETR TREE 自动提取此类轮廓 cv2 RETR EXTERNAL 将忽略我实际需要的 2 和 4 gt gt heirarch
  • OpenCV:将 cvGoodFeaturesToTrack 与 C++ mat 变量结合使用

    我正在尝试使用cvGoodFeatureToTrackVisual Studio 2010 中的函数 图像类型为Mat 我见过的大多数例子都使用IplImage指针 现在我有这个 int w h video frame size Mat g
  • 在linux上编译一个基本的OpenCV + Cuda程序

    我过去在linux上使用过opencv 但没有使用过cuda 几个月来我一直在与以下编译错误作斗争 在尝试了许多解决方案后 我放弃并使用 Windows 不过 我真的很想在 Linux 上工作 这是我用来编译 opencv gpu 网站上给
  • 3D 空间中的激光投影仪校准

    我正在研究一种在现实世界中校准激光投影仪的解决方案 该项目有几个目标 1 Take in a minimum of four points measured in the real world in 3d space that repres
  • 如何将 QtCreator 项目转换为 Visual Studio 项目

    我有一个 QtCreator 项目文件 pro 如何将其转换为Visual Studio 2008项目 sln 您还可以使用 qmake 命令来执行此操作 转到项目目录并输入 qmake tp vc
  • pytesseract 无法按预期识别文本?

    我正在尝试通过 opencv 和 pytesseract 运行一个简单的车牌图像来获取文本 但我无法从中获取任何内容 按照此处的教程进行操作 https Circuitdigest com microcontroller projects
  • 如何使用 opencv 从字节显示视频?

    我正在开展一个项目 其中我们使用无线电调制解调器将数据 视频和遥测 从无人机传输到地面站 我们需要做的是实时显示视频 并能够知道 C 中的每一块遥测数据对应哪一帧 数据被解封装为遥测和视频 mpeg4 字节 由于我对 OpenCV 有一些经
  • OpenCV Java:如何访问 findNonZero() 返回的坐标?

    在我的 Android 应用程序中 我正在使用findNonZero 查找并访问二值图像中的白点 我得到了图像 binMat大小 595 800 作为方法的输入 然后我有 Mat wLocMat Mat zeros binMat size
  • Kinect 启用流时出错

    这是我第一次尝试制作一个使用 Kinect 的程序 我不知道为什么我总是得到一个null错误 也许更了解 KinectSDK 的人可以提供帮助 public ProjKinect InitializeComponent updateSens
  • 水平计数加工织物中的白色簇

    我对织物材质进行了处理 得到如下图所示的图像 原图 处理后的图像 现在 我想找到连续的白色簇的数量 如果所有簇都是均匀且完全水平的 我将运行一个循环来计算强度的上升和下降 以找到簇的数量 但事实并非如此 如果我通过上述方法取几行的中值 平均
  • OpenCV Python - 如何实现RANSAC来检测直线?

    我正在尝试检测包含道路的图像上的线条 使用高斯平滑和 Canny 边缘检测 我在尝试实现 RANSAC 时遇到了困难 我基本上不知道如何去做 我可以获得一个粗略的想法或一个带有实现 RANSAC 的随机图像 foo png 的工作代码吗 N
  • Tkinter 嵌套主循环

    我正在写一个视频播放器tkinter python 所以基本上我有一个可以播放视频的 GUI 现在 我想实现一个停止按钮 这意味着我将有一个mainloop 对于 GUI 还有另一个嵌套mainloop 播放 停止视频并返回 GUI 启动窗
  • 我无法在 docker 中安装 opencv-contrib-python

    我尝试安装opencv contrib python但我无法让它在 docker 上工作 它说找不到满足 opencv contrib python 要求的版本 I tried pip install opencv contrib pyth
  • 如何加载4通道的png图像?

    我一直在尝试加载带有透明通道 RGB 和 Alph 的 png 文件 但没有成功 看来 openCV 从图像中剥离了第四个通道 即使我必须修改 OpenCV 源代码并重建它 是否有任何方法可以加载包含 alpha 通道在内的完整 4 个通道
  • 从彩色背景中提取黑色对象

    人眼很容易辨别black来自其他颜色 但是计算机呢 我在普通的A4纸上打印了一些色块 由于组成彩色图像有青色 品红色和黄色三种墨水 所以我设置每个块的颜色C 20 C 30 C 40 C 50 以及其余两种颜色是 0 这是我的源图像的第一列

随机推荐

  • 颜色值如何使用 C++ 输出字符串格式?

    颜色值如何使用 C 43 43 输出字符串格式 xff1f https developer android com reference android graphics Color html https en wikipedia org w
  • 如何使用 opencv 调用 yolov5 onnx 模型 ?

    如何使用 opencv 调用 yolov5 onnx 模型 xff1f rtx3090 24G release 90 fps by use yolov5n rtx3090 24G release 20 fps by use yolov5s
  • Conda 备忘录指南 (VER 4.12.0)

    Conda 备忘录指南 VER 4 12 0 快速入门 提示 建议为任何新项目或工作流创建一个新环境 CNENCMD验证conda安装和检查版本verify conda install and check versionconda info
  • 使用 C++ filesystem 递归目录

    如何使用 C 43 43 filesystem 递归目录 xff1f include lt Windows h gt include lt iostream gt include lt string gt include lt fstrea
  • CMake 如何复制文件?

    何时执行自定义指令 PRE BUILD PRE LINK POST BUILD 单文件 add custom command TARGET PROJECT NAME POST BUILD COMMAND CMAKE COMMAND E co
  • 什么是 MQ?

    消息队列 MQ 是在微服务架构中使用的异步服务到服务通信协议 在 MQ 中 xff0c 消息被排队 xff0c 直到它们被处理和删除 每条消息只处理一次 此外 xff0c MQ 可用于解耦重量级处理 缓冲和批处理工作 消息队列提供系统不同部
  • Qt 如何并发异步调用?

    Qt 如何并发异步调用 xff1f QT 43 61 core concurrent widgets template lt typename T typename Handler gt void await const QFuture l
  • 如何使用 C++ 构建一个环结构?

    C 43 43 环状移动 include lt iostream gt include lt list gt int main auto list 61 std list lt int gt 1 3 5 7 9 for auto i 61
  • C++ std::thread 如何使用?

    C 43 43 是一种高级编程语言 xff0c 被广泛用于开发高性能 大规模 复杂的软件系统 其中一个强大的特性就是多线程编程 xff0c 而std thread是C 43 43 标准库提供的多线程支持的重要组成部分 免费虚拟手机号注册网址
  • 导航雷达回波信号格式和目标检测算法

    导航雷达回波信号格式 导航雷达回波信号格式会根据具体的雷达类型和应用场景有所不同 通常 xff0c 导航雷达回波信号包含以下几个关键参数 xff1a 距离信息 xff08 Range xff09 xff1a 雷达发送的电磁波与目标相互作用后
  • 厦门IT公司名单及联系方式

    厦门高士达科技实业有限公司 xff1a xff08 已走访并开展了座谈 xff09 地址 xff1a 厦门软件园观日路58号9楼 总机 xff1a 2958000 联系人 xff1a 童小姐 xff08 人事专员 xff09 厦门恒深智能软
  • 巧用可变参数宏、编译器内置宏和printf输出调试信息

    前言 xff1a 我们在写程序的时候 xff0c 总是或多或少会加入一些printf之类的语句用于输出调试信息 xff0c 但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除 xff0c 而一旦需要
  • STM32外设寄存器地址定义

    一直都是用STM32做项目中的主控芯片 xff0c 在编程的时候 xff0c 之前一直忽视了一个问题 xff0c 那就是寄存器的位置是如何定义的 xff0c 为什么用一个USART1 gt CR操作就能够给这个CR寄存器赋值 xff1f 其
  • CoppeliaSim ( vrep ) 与 c++ ( visual studio 2019)新建基本工程

    CoppeliaSim vrep 与 c 43 43 xff08 visual studio 2019 xff09 新建基本工程 文章目录 CoppeliaSim vrep 与 c 43 43 xff08 visual studio 201
  • windows-rbdl-vs2019

    根据源码提示 xff0c 在项目属性 c 43 预处理器 预处理定义中加入定义 ifndef RBDL BUILD ADDON URDFREADER error 34 Error RBDL addon URDFReader not enab
  • 2021-11-11 机械臂路径规划学习进展

    机械臂关节空间和末端空间路径规划 关节空间路径规划简单障碍物情况 xff1a 之后搭建复杂障碍物场景 xff1a 测试发现路径规划的两个步骤 xff1a 采用了关节空间进行路径规划的方案 xff0c 原因主要是在关节空间也就是构型空间中 x
  • 2021-11-12 轨迹规划了解

    1 机器人中的轨迹规划 曲线柔顺 xff1a 五次多项式曲线 起终点位置 速度 加速度约束六个方程 虽然这三条曲线都是连续且光滑的 xff0c 但却存在一个很实际的问题 从速图曲线中可以看出在t 61 25时速度达到最大值 xff0c 没有
  • 【轨迹规划】c++ vector<vector<double>>数据传递

    轨迹信息传递 span class token macro property span class token directive hash span span class token directive keyword include s
  • 2022-3-9 Ubuntu 16 安装opencv 4.5

    ubuntu 16安装 OpenCV 3 的教程 也是安装OpenCV 3 Ubuntu 18 安装 OpenCV 4 5 的 安装完成后 xff0c 手动创建opencv pc xff1a cd usr local lib sudo mk
  • 2022-4-21 vrep深度相机Kinect 远程c++(qtcreator) opencv 保存

    从模型库里拉出来一个Kinect相机放在合适位置 xff1a 设置好像素 xff0c 不是标准像素值vrep有警告 xff08 可能数据有误 xff09 xff0c 忽略即可 同样的像素值 xff0c 在c 43 43 端 xff1a sp