奥比中光astra深度相机通过openni直接显示rgb彩色图、depth深度图、ir红外图

这篇具有很好参考价值的文章主要介绍了奥比中光astra深度相机通过openni直接显示rgb彩色图、depth深度图、ir红外图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章的前提为astra深度相机驱动安装完成能够正常显示使用,如果没有安装好请看另一篇文章

Thinker Board 2开发板上使用奥比中光 astra 深度相机
也可以看其他人的类似奥比中光astra深度相机的教程

创建python文件复制下面代码既可使用
注意 depth图和ir图有冲突不能同时使用

from openni import openni2
import numpy as np
import cv2


if __name__ == "__main__":

    openni2.initialize()
    #设备型号
    dev = openni2.Device.open_any()
    #打印设备型号
    print(dev.get_device_info())

    #创建深度流的通道
    depth_stream = dev.create_depth_stream()
    depth_stream.start()
    #彩色通道
    color_stream = dev.create_color_stream()
    color_stream.start()
    #红外通道
    #ir_stream = dev.create_ir_stream()
    #ir_stream.start()



    #深度窗口
    cv2.namedWindow('depth')
    #彩色窗口
    cv2.namedWindow('color')
    #红外窗口
    #cv2.namedWindow('ir')

    capture_flag = 0

    base_path = '../'

    count = 1
    #设置视频的分辨率和长宽以及fps等等内容
    # ir_stream.set_video_mode(c_api.OniVideoMode(pixelFormat = c_api.OniPixelFormat.ONI_PIXEL_FORMAT_GRAY16, resolutionX = 320, resolutionY = 240, fps = 30))

    while True:
    # 显示深度图像
        dframe = depth_stream.read_frame()
        # 转换数据格式
        dframe_data = np.array(dframe.get_buffer_as_triplet()).reshape([480, 640, 2])
        dpt1 = np.asarray(dframe_data[:, :, 0], dtype='float32')
        dpt2 = np.asarray(dframe_data[:, :, 1], dtype='float32')

        dpt2 *= 255
        # 对于为什么要乘于255的解答
        # 深度图像的深度值 是按照16位长度(两字节)的数据格式存储的,也可以认为前八位是高字节,后八位是低字节。
        # 因此一张深度图像如果是 640480分辨率的话,那么图像字节大小 就是 640480*2,其中一个字节是8位(255)
        dpt = dpt1 + dpt2
        # 转换一下,重要,陈20221222
        dpt = dpt.astype(np.uint16)

        # cv2里面的函数,就是类似于一种筛选
        '假设我们需要让我们的深度摄像头感兴趣的距离范围有差别地显示,那么我们就需要确定一个合适的alpha值,公式为:有效距离*alpha=255,' \
        '假设我们想让深度摄像头8m距离内的深度被显示,>8m的与8m的颜色显示相同,那么alpha=255/(8*10^3)≈0.03,' \
        '假设我们想让深度摄像头6m距离内的深度被显示,>6m的与6m的颜色显示相同,那么alpha=255/(6*10^3)≈0.0425'
        dim_gray = cv2.convertScaleAbs(dpt, alpha=0.17)
        # 对深度图像进行一种图像的渲染,目前有11种渲染方式,大家可以逐一去试下
        depth_colormap = cv2.applyColorMap(dim_gray, 2)  # 有0~11种渲染的模式
        cv2.imshow('depth', depth_colormap)

    # 显示RGB图像
        cframe = color_stream.read_frame()
        cframe_data = np.array(cframe.get_buffer_as_triplet()).reshape([480, 640, 3])
        R = cframe_data[:, :, 0]
        G = cframe_data[:, :, 1]
        B = cframe_data[:, :, 2]
        cframe_data = np.transpose(np.array([B, G, R]), [1, 2, 0])
        # print(cframe_data.shape)
        cv2.imshow('color', cframe_data)

    # 显示ir图像
    #     iframe = ir_stream.read_frame()
    #     iframe_data = iframe.get_buffer_as_uint16()
    #     img = np.frombuffer(iframe_data, dtype=np.uint16)
    #     img.shape = (480, 640)
    #     img = img.astype(np.float) / 1024
    #     cv2.imshow("ir", img)

        key = cv2.waitKey(30)
        if int(key) == ord('q'):
            break

        if int(key) == ord('r'):
            capture_flag = 1
        if capture_flag == 1:
            name = str(count).zfill(8)
            cv2.imwrite(base_path + 'img/' + name + ".jpg", depth_colormap)
            #cv2.imwrite(base_path + 'img/' + name + ".jpg", cframe_data)
            # cv2.imwrite(base_path + 'img/' + name + ".jpg", img)
            count = count + 1

    depth_stream.stop()
    color_stream.stop()
    #ir_stream.stop()
    dev.close()

这里就不展示ir图了
astra深度相机,深度学习,python,计算机视觉,opencv文章来源地址https://www.toymoban.com/news/detail-620125.html

到了这里,关于奥比中光astra深度相机通过openni直接显示rgb彩色图、depth深度图、ir红外图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [ROS2系列] ORBBEC(奥比中光)AstraPro相机在ROS2进行rtabmap 3D建图

    目录 背景: 一、驱动AstraPro摄像头 二、安装rtabmap error1:缺包 三、尝试 四、参数讲解 五、运行 error2: Did not receive data since 5 seconds! 六、效果​编辑 error4: 背景: 1、设备:pc;jeston agx orin 2、环境:Ubuntu20.04;ROS2(Foxy) 3、主从机配置,jeston agx orin为主机 4、 jeston agx orin含有

    2024年02月07日
    浏览(31)
  • ORBBEC(奥比中光)AstraPro相机在ROS2下的标定与D2C(标定与配准)

    相机自带的D2C效果不好,颜色和点云没有很好地匹配上,自己按照下面的介绍手动匹配一下。 在下载来的sdk,里面没有标定的文件:ost.yaml. 需要自己进行标定、生成。 我所使用的相机型号是Astra_pro,它是一个单目结构光相机,有一个RGB摄像头+一个IR摄像头。从数量上算是一个

    2024年02月06日
    浏览(30)
  • 实测 (二)NVIDIA Xavier NX + D435i / 奥比中光Astrapro 相机+ ORB-SLAM 2 + 3 稠密回环建图

    接着上篇,开始orb-slam2稠密回环建图 先上效果图  这里感谢大神提供一个可回环的稠密地图版本: https://github.com/xiaobainixi/ORB-SLAM2_RGBD_DENSE_MAP.git 2.1 安装依赖(和orb-slam2环境配置一样,如果已经配置过,可以跳到pcl安装) (1)Pangolin(推荐0.5版本) (2)opencv3.2.0(巨坑!!

    2024年02月08日
    浏览(33)
  • 实测 (四)NVIDIA Xavier NX + D435i / 奥比中光Astrapro 相机+ ORB-SLAM 2 + 3 稠密回环建图

    首先小白老师分享的ORB-SLAM3的可回环的稠密地图版本,具体在这篇博客,下载但是却没有相关的具体实现教程,这里我们先使用 奥比中光Astrapro 两款相机进行配置实现 其实与orb-slam2的环境配置一样,使用的仍然是pagolin0.5,和opencv3.2.0版本(3.4.x也可以),pcl1.8.1+vtk7.1.1 这里

    2024年02月16日
    浏览(33)
  • Astra深度相机在Ubuntu18.04系统下实现相机标定

    问题: 当使用Astra相机的启动的指令启动相机后,使用rviz查看相机所发布的rgb数据时,在终端会出现如下的提示信息: Camera calibration file /home/car/.ros/camera_info/rgb_Astra_Orbbec.yaml not found. Camera calibration file /home/car/.ros/camera_info/depth_Astra_Orbbec.yaml not found. 可以看到提示的信息为相机

    2024年04月09日
    浏览(40)
  • 奥比中光:进击具身智能,打造机器人之眼

    大数据产业创新服务媒体 ——聚焦数据 · 改变商业 跨过奇点的生成式人工智能是一个缸中大脑,只有赋予形体,才能与物理世界产生互动。 在5月的ITF世界半导体大会上,英伟达创世人兼CEO黄仁勋说,人工智能的下一波浪潮将是具身智能。 8月中旬,世界机器人大会在北京

    2024年02月11日
    浏览(30)
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK直接实现Mono16位深度的图像保存(C++)

    Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩

    2024年02月10日
    浏览(35)
  • pyorbbecsdk奥比中光python版本SDK在Windows下环境配置笔记

            Orbbec SDK Python Wrapper基于Orbbec SDK进行设计封装,主要实现数据流接收,设备指令控制。 2.1、操作系统 Windows:Windows 10 (x64)(本文 针对windows) Linux: 18.04/20.04/22.04 (x64) Arm32: 18.04/20.04/22.04 Arm64: Ubuntu18.04/20.04/22.04 2.2、编译平台要求 Windows:Visual Studio 2017 及以上(本人用

    2024年04月12日
    浏览(31)
  • ubuntu16.04下标定Astra相机

    1.安装相机驱动 2.下载camere_calibration 3.进行标定 打开终端,输入 打开另一个终端,输入

    2024年02月07日
    浏览(32)
  • Baumer工业相机堡盟相机使用BGAPISDK联合Halcon直接进行图像显示(Mono)(C#)(将图像数据Buffer转为HObject)

    Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包