海康工业相机 python 图像数据转opencv格式

python调用海康工业相机,官方给出的SDK里没有转到opencv格式的例子,网上找了下,只有一篇,转换部分的代码如下:

temp = np.asarray(pData2)  # 将c_ubyte_Array转化成ndarray得到(3686400,)
temp = temp.reshape((2592, 2048, 1))  # 根据自己分辨率进行转化
gray = cv2.cvtColor(temp,cv2.COLOR_BGR2GRAY)
cv2.imshow("img", gray)

但是ctypes的格式转np.array的会报错,网上的说法是numpy的版本问题,试了试没解决,搜了半天,找到一个可行的,代码如下(就是在海康SDK的例子里改的):

winfun_ctype = WINFUNCTYPE

stFrameInfo = POINTER(MV_FRAME_OUT_INFO_EX)
pData = POINTER(c_ubyte)
FrameInfoCallBack = winfun_ctype(None, pData, stFrameInfo, c_void_p)

def image_callback(pData2, pFrameInfo, pUser):
        stFrameInfo = cast(pFrameInfo, POINTER(MV_FRAME_OUT_INFO_EX)).contents
        if stFrameInfo:
            b = string_at(pData2, 2592 * 2048 * 1)
            nparr = np.frombuffer(b, np.uint8)
            nparr = nparr.reshape(2048, 2592, 1)
            cv2.imshow(" dst ", nparr)
            cv2.waitKey(1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值