• realsense 测量2


    realsense测量2

    import pyrealsense2 as rs
    
    pipeline = rs.pipeline()
    config = rs.config()
    config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
    config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
    
    pipeline.start(config)
    
    # 创建对齐对象(深度对齐颜色)
    align = rs.align(rs.stream.color)
    
    try:
        while True:
            frames = pipeline.wait_for_frames()
            
            # 获取对齐帧集
            aligned_frames = align.process(frames)
            
            # 获取对齐后的深度帧和彩色帧
            aligned_depth_frame = aligned_frames.get_depth_frame()
            color_frame = aligned_frames.get_color_frame()
    
            # 获取颜色帧内参
            color_profile = color_frame.get_profile()
            cvsprofile = rs.video_stream_profile(color_profile)
            color_intrin = cvsprofile.get_intrinsics()
            color_intrin_part = [color_intrin.ppx, color_intrin.ppy, color_intrin.fx, color_intrin.fy]
            # print(color_intrin_part)
            # [318.48199462890625, 241.16720581054688, 616.5906372070312, 616.7650146484375]
        
            if not aligned_depth_frame or not color_frame:
                continue
    
            # video_demo.py文件中:
            image = draw_bbox(color_frame, bboxes, aligned_depth_frame, color_intrin_part)
    
    
    # utils.py文件中:
    def draw_bbox(image, bboxes, aligned_depth_frame, color_intrin_part, classes=read_class_names(cfg.YOLO.CLASSES),
                  show_label=True):
    
        print('*' * 50)
        
        # 提取ppx,ppy,fx,fy
        ppx = color_intrin_part[0]
        ppy = color_intrin_part[1]
        fx = color_intrin_part[2]
        fy = color_intrin_part[3]
    
        for i, bbox in enumerate(bboxes):
            if show_label:
                target_xy_pixel = [int(round((coor[0] + coor[2]) / 2)), int(round((coor[1] + coor[3]) / 2))]
                target_depth = aligned_depth_frame.get_distance(target_xy_pixel[0], target_xy_pixel[1])
    
                target_xy_true = [(target_xy_pixel[0] - ppx) * target_depth / fx,
                                  (target_xy_pixel[1] - ppy) * target_depth / fy]
                print('识别出目标:{} 中心点像素坐标:({}, {}) 实际坐标(mm):({:.3f},{:.3f}) 深度(mm):{:.3f}'.format(classes[class_ind],
                                                                                                target_xy_pixel[0],
                                                                                                target_xy_pixel[1],
                                                                                                target_xy_true[0] * 1000,
                                                                                                -target_xy_true[1] * 1000,
                                                                                                target_depth * 1000))
                '''                                                                                
                **************************************************
                识别出目标:person 中心点像素坐标:(272, 142) 实际坐标(mm):(-160,341) 深度(mm):2122
                识别出目标:person 中心点像素坐标:(414, 197) 实际坐标(mm):(506,234) 深度(mm):3268
                识别出目标:person 中心点像素坐标:(114, 246) 实际坐标(mm):(-930,-22) 深度(mm):2804
                识别出目标:chair 中心点像素坐标:(82, 340) 实际坐标(mm):(-934,-390) 深度(mm):2435
                识别出目标:chair 中心点像素坐标:(60, 296) 实际坐标(mm):(-1021,-216) 深度(mm):2435
                识别出目标:keyboard 中心点像素坐标:(456, 408) 实际坐标(mm):(199,-241) 深度(mm):892
                识别出目标:laptop 中心点像素坐标:(287, 303) 实际坐标(mm):(-67,-131) 深度(mm):1306
                识别出目标:laptop 中心点像素坐标:(354, 221) 实际坐标(mm):(77,44) 深度(mm):1332
                识别出目标:laptop 中心点像素坐标:(428, 257) 实际坐标(mm):(507,-73) 深度(mm):2856
                识别出目标:laptop 中心点像素坐标:(522, 357) 实际坐标(mm):(0,-0) 深度(mm):0
                '''
    return image

     

    #########################

  • 相关阅读:
    在线捉鬼游戏开发之二
    在线捉鬼游戏开发之二
    在线捉鬼游戏开发之一
    Oxygen-Dapr.EshopSample 部署随记
    word2010 标题自动编号设置
    饿了么element 全屏加载中
    vue笔记
    那些骂鸿蒙的人,我想说……
    为什么我们要在 Sketch 中备份所有 Figma 设计
    好的设计要多分享,5款优秀在线原型设计案例
  • 原文地址:https://www.cnblogs.com/herd/p/15634655.html
Copyright © 2020-2023  润新知