首页 > 解决方案 > 为什么 cv2 中的 imshow 和 imwrite 会出现此错误?

问题描述

我正在使用 hamamatsu 相机,我拍摄了几张图像(numpy 数组),然后从第一个中减去第二个,如下所示:

if dcam.wait_capevent_frameready(timeout_milisec) is not False:
                  data=dcam.buf_getframedata(x)
                  vec_cap[x] = data
                  if x == 0:
                        val_fin = data
                  elif x%2==0:
                        val_fin = val_fin+data
                  else:
                        val_fin = val_fin+(-1)*data

但是当我想显示图像结果时,我遇到了这个错误: src_depth != CV_16F && src_depth != CV_32S in function 'convertToShow' 我将数组更改为 uint8:

    if val_fin.dtype==np.uint16:
        val_max = np.amax(val_fin)
        val_mul = int(65535/val_max)
        val_fin = val_fin*val_mul
        print(val_fin)

    np.savetxt("imagen.csv", val_fin, delimiter=",")
    cv2.imshow('Imagen final', val_fin)
    cv2.imwrite('Imagen final.png', val_fin)

如果我只拍摄 1 张图像它可以工作,但是当我做更多并且 val_fin 是结果 ob 减去错误出现时,有人可以帮助我吗?谢谢。

标签: pythonopencv

解决方案


推荐阅读