vs中imshow函数报错_OpenNI和OpenCV:cv2.imshow()崩溃并出现错误:(215:断言失败)数据.dst==(uchar*)函数“cvShowImage”中的dst_ptr...

我正在尝试从一个连接到Windows10机器的Orbbec Astra Pro相机接收深度图像。我已经安装了opencv-python 4.0.0.21和{},这似乎是最新可用的稳定的python包。在

这是我正在试验的代码片段:import numpy as np

import cv2

from primesense import openni2

from primesense import _openni2 as c_api

openni2.initialize("./OpenNI-Windows-x64-2.3/Redist")

if openni2.is_initialized():

print('openni2 ready')

else:

print('openni2 not ready')

dev = openni2.Device.open_any()

depth_stream = dev.create_depth_stream()

depth_stream.set_video_mode(c_api.OniVideoMode(pixelFormat = c_api.OniPixelFormat.ONI_PIXEL_FORMAT_DEPTH_100_UM, resolutionX = 640, resolutionY = 480, fps = 30))

depth_stream.start()

while(True):

frame = depth_stream.read_frame()

frame_data = frame.get_buffer_as_uint16()

img = np.frombuffer(frame_data, dtype=np.uint16)

img.shape = (1, 480, 640)

img = np.concatenate((img, img, img), axis=0)

img = np.swapaxes(img, 0, 2)

img = np.swapaxes(img, 0, 1)

cv2.imshow("image", img)

cv2.waitKey(34)

depth_stream.stop()

openni2.unload()

但是,当cv2.imshow()被呼叫时,我收到:cv2.error: OpenCV(4.0.0)

C:\projects\opencv-python\opencv\modules\highgui\src\window_w32.cpp:1230:

error: (-215:Assertion failed) dst.data == (uchar*)dst_ptr in function

'cvShowImage'

我不知道如何将OpenNI框架转换为opencvmat数据结构,也不知道为什么cv2.imshow()拒绝显示图像。OpenNI似乎正确初始化,至少它打印openni2 ready。。。我做错什么了?在

编辑

溶液(某种)

将OpenCV版本降级到最新的3.x版本使它工作起来了!在

pip install --upgrade opencv-python==3.4.5.20

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值