TypeError: тип данных mat = 17 не поддерживается, показывать ИК-данные с помощью realsense d435 - PullRequest
0 голосов
/ 12 декабря 2018

В настоящее время я работаю с d435 и хочу отображать ИК-изображения (как левые, так и правые, но на мгновение просто сфокусируйтесь на одном), следуя моему коду:

import pyrealsense2 as rs
import numpy as np
import cv2

# We want the points object to be persistent so we can display the 
#last cloud when a frame drops
points = rs.points()

# Create a pipeline
pipeline = rs.pipeline()
#Create a config and configure the pipeline to stream
config = rs.config()
config.enable_stream(rs.stream.infrared, 1, 1280, 720, rs.format.y8, 30)
# Start streaming
profile = pipeline.start(config)

# Streaming loop
try:
    while True:
        # Get frameset of color and depth
        frames = pipeline.wait_for_frames()
        ir1_frame = frames.get_infrared_frame(1) # Left IR Camera, it allows 1, 2 or no input
        image = np.asanyarray(ir1_frame)
        cv2.namedWindow('IR Example', cv2.WINDOW_AUTOSIZE)
        cv2.imshow('IR Example', image)
        key = cv2.waitKey(1)
        # Press esc or 'q' to close the image window
        if key & 0xFF == ord('q') or key == 27:
            cv2.destroyAllWindows()
            break
finally:
    pipeline.stop()

Все работает дострока:

cv2.imshow('IR Example', image)

Я получаю сообщение об ошибке:

TypeError: тип данных mat = 17 не поддерживается

Я нашел эту ссылку: TypeError: тип данных src = 17 не поддерживается

, но я все еще не могу понять, как показать мое изображение.У кого-нибудь есть идеи?Пожалуйста, поделитесь, я новичок в opencv.

image.shape = ()
image.dtype = dtype('O')

Cheers

1 Ответ

0 голосов
/ 12 декабря 2018

Вам нужно позвонить get_data(), чтобы получить изображение из кадра.

image = np.asanyarray(ir1_frame.get_data())
...