我想将包含灰度图像的numpy数组(形状:48,48)转换为Cv Mat或Img对象。
我已经尝试过cv2.imdecode函数,但是它只返回了docs中所述的空矩阵,但是并没有告诉我为什么它不起作用。
data = prep_data()
img_raw = np.array(data[1][0])
print(img_raw)
img = cv2.imdecode(img_raw, cv2.CV_LOAD_IMAGE_COLOR)
cv2.imshow('image',img)
cv2.waitKey(0)
这是我得到的异常,但是我已经“发现”该异常是因为img obj为空。
例外:
cv2.error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:325: error: (-215) size.width>0 && size.height>0 in function cv::imshow
答案 0 :(得分:0)
在Python中,OpenCV图像是NumPy数组。 因此,这取决于您的 prep_data 函数返回的内容,但是您可能不需要调用 cv2.imdecode 。 print(img_raw)在您的代码中返回什么?无论如何,请尝试直接显示img_raw:
data = prep_data()
img_raw = np.array(data[1][0])
cv2.imshow('image',img_raw)
cv2.waitKey(0)