Регистрация изображений не работает на Primesense
У меня есть Primesense Карамин 1,09. Я использую openni2. Я пытаюсь применить регистрацию изображения на глубине изображения.
def Depth(self):
self.depth_stream = self.dev.create_depth_stream()
self.dev.set_image_registration_mode(openni2.c_api.OniImageRegistrationMode.ONI_IMAGE_REGISTRATION_DEPTH_TO_COLOR)
self.depth_stream.set_video_mode(
c_api.OniVideoMode(pixelFormat=c_api.OniPixelFormat.ONI_PIXEL_FORMAT_DEPTH_1_MM, resolutionX=640, resolutionY=480,
fps=30))
self.depth_stream.start()
self.depthFrame = self.depth_stream.read_frame()
self.depthData = self.depthFrame.get_buffer_as_uint16()
self.imgDepth = np.frombuffer(self.depthData, dtype=np.uint16)
self.depthMat = np.reshape(self.imgDepth, (480, 640))
np.save("Regi_cam2_depth", self.depthMat)
self.depth_stream.stop()
def Rgb(self):
self.color_stream = self.dev.create_color_stream()
self.color_stream.set_video_mode(
c_api.OniVideoMode(pixelFormat=c_api.OniPixelFormat.ONI_PIXEL_FORMAT_RGB888, resolutionX=640, resolutionY=480,
fps=30))
self.color_stream.start()
self.rgbFrame = self.color_stream.read_frame()
self.rgbData = self.rgbFrame.get_buffer_as_uint8()
self.imgRgb = np.frombuffer(self.rgbData, dtype=np.uint8)
self.rgbMat = np.reshape(self.imgRgb, (480, 640, 3))
np.save("Regi_cam2_rgb_col", self.rgbMat)
self.rgbFrame = self.rgbMat.copy()
self.color_stream.stop()
Когда я применяю приведенный выше код, значения глубины с изображением регистрации и без изображения регистрации (когда я комментирую self.dev.set_image_registration_mode(openni2.c_api.OniImageRegistrationMode.ONI_IMAGE_REGISTRATION_DEPTH_TO_COLOR)) не совпадают. Значения глубины уменьшаются. В чем проблема?
Благодарю.