python - Python在二维数组中保存和读取灰度图像?
问题描述
我想保存没有任何通道的图像,因此尺寸仅为 2。因此,有没有办法在 matplotlib 中做到这一点?
我已经尝试过使用
matplotlib.pyplot.imsave('img.png', image, cmap='gray')
但是当我阅读它时
matplotlib.pyplot.imread('img.png')
维度是 3。所以我很困惑如何。我知道也许我不能使用 imread 但我能做些什么呢?
解决方案
如果你安装了opencv,你可以试试:
cv2.imread('1.png', cv2.IMREAD_GRAYSCALE)
此外,您也可以尝试 PIL。
from PIL import Image
Image.fromarray(array)
我没有在网上看到这个,但是这个有效!感谢我的老师!
skimage.io.imsave('1.png', np.around(image*255).astype(np.uint8))
要使用它,您必须预先安装 skimage。
pip3 install scikit-image
感谢@ Cris Luengo在上面的评论中指出
“从文档来看,matplotlib 似乎只保存 RGB 或 RGBA 格式的图像文件。您必须使用不同的包来保存灰度图像。下面建议的 OpenCV 只是一种选择。有很多。试试 PIL 。”
看到就给他点个赞吧!
推荐阅读
- stripe-payments - 条纹连接直接充电与意图
- javascript - 无法在 setTimeout 回调中以编程方式打开 Vuetify 对话框
- ios - ** BUILD FAILED ** 将 android 迁移到 iOS
- r - 如何在庞大的数据集中找到某个标准的天数?
- php - 带有 CURL 的 400 错误请求
- python - 请求:将数组拆分为多个同名参数?
- google-bigquery - 在 BigQuery 中查询 Google Analytics 事件:事件错误消息
- python - 在 3-D numpy 数组的小切片上有效地使用 1-D pyfftw
- primefaces - 为什么我的表单在渲染后没有重置他的样式?
- r - 使用 removeBimeraDenovo 函数时 R 控制台崩溃