python - 将 numpy 像素矩阵转换为 OpenCv 图像
问题描述
我想将包含灰度图像的 numpy 数组(形状:48,48)转换为 Cv Mat 或 Img 对象。
我已经尝试过 cv2.imdecode 函数,但它只是返回了一个空矩阵,如文档中所述,但它没有告诉我为什么它不起作用。
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
解决方案
在 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)
推荐阅读
- electron - Electron Uncaught ReferenceError: require is not defined | 我将 nodeIntegration 设置为 true
- r - 如何用 R Markdown 输出外语?
- visual-studio-code - 是否可以自定义 VS Code 自动完成菜单?
- javascript - 从浏览器访问 USB 智能卡数据
- apache-kafka - Kafka RangeAssignor 优于 RoundRobin
- python-3.x - 为什么我尝试运行先验算法时会出错?
- node.js - Mongoose 模式模型在 docker 中使用 Model.find() 返回空数组
- nginx - 在 openresty 中获取输入标头
- vb.net - 在我什至调用表单之前,vb.net 正在调用表单“新”例程
- visual-studio - 包“Microsoft.VisualStudio.MinShell.Msi,version=16.9.31025.104”的解决方法无法下载