Сегментация облака точек Kinect, измерение расстояния - PullRequest
0 голосов
/ 04 июня 2019

Я использую библиотеки openni + opencv в Python 3.7 для измерения расстояния от kinect до объектов.Я нашел несколько примеров и сделал несколько видеозаписей.Смысл в том, чтобы сделать объекты сегментации видимыми через kinect?Как я могу сделать это так просто в Python 3.7?Я должен добавить, что я использую 32-битный Python и не могу установить PyPCL или другие библиотеки.Взгляните на это https://www.youtube.com/watch?v=H7zaEFXKomY

import numpy
import cv2
from openni import openni2


def show_depth_value(event, x, y, flags, param):
    global depth
    print(depth[y, x],'mm')

if __name__ == '__main__':
    # can also accept the path of the OpenNI redistribution
    openni2.initialize()
    dev = openni2.Device.open_any()
    depth_stream = dev.create_depth_stream()
    print(depth_stream.get_mirroring_enabled)
    depth_stream.start()
    color_stream = dev.create_color_stream()
    color_stream.start()
    depth_scale_factor = 255.0 / depth_stream.get_max_pixel_value()
    cv2.namedWindow('depth')
    cv2.setMouseCallback('depth', show_depth_value)

    while True:
        # Get depth
        depth_frame = depth_stream.read_frame()
        h, w = depth_frame.height, depth_frame.width
        depth = numpy.ctypeslib.as_array(
            depth_frame.get_buffer_as_uint16()).reshape(h, w)
        depth_uint8 = cv2.convertScaleAbs(depth, alpha=depth_scale_factor)
        depth_colored = cv2.applyColorMap(depth_uint8, cv2.COLORMAP_HSV)

        # Get color
        color_frame = color_stream.read_frame()
        color = numpy.ctypeslib.as_array(
            color_frame.get_buffer_as_uint8()).reshape(h, w, 3)
        color = cv2.cvtColor(color, cv2.COLOR_RGB2BGR)

         # Display
        cv2.imshow('depth', depth_uint8)
        cv2.imshow('depth colored', depth_colored)
        cv2.imshow('color', color)

        k = cv2.waitKey(10) & 0xff
        if k == 27:
            break
    depth_stream.stop()
    openni2.unload()
...