python - 在python中使用cmap对单 channel png进行imread时如何抑制重新缩放?

标签 python opencv scipy

我需要加载与 python 中的颜色图一起存储的单 channel png 文件。它们包含标签索引,因此重新缩放它们对我来说是不合适的。

我刚刚注意到,出于某种奇怪的原因,scipy.misc.imreadcv2.imread加载图像时重新缩放图像。我怎么能压制它?

编辑 :
我只是在另一个没有任何颜色图的单 channel png 上尝试了相同的方法。它不存在重新缩放的问题。所以颜色图似乎是问题所在。

这是一个示例图像(它是单 channel ,颜色来自颜色图):
Here is an example image

最佳答案

而不是使用 scipy.misc.imread (这只是 Pillow 的 [已弃用] 前端),直接使用 Pillow。当索引 Image对象被赋予 np.array() ,创建一个索引数组。

In [101]: from PIL import Image

In [102]: img = Image.open('WWpd3.png')

In [103]: a = np.array(img)

In [104]: a.shape, a.dtype
Out[104]: ((160, 320), dtype('uint8'))

In [105]: a.min(), a.max()
Out[105]: (0, 19)

In [106]: a[:3, :8]
Out[106]: 
array([[19, 19, 19, 19, 19, 19, 19, 19],
       [19, 10, 10,  5,  5, 10, 10, 10],
       [19, 10, 10,  5,  5, 10, 10, 10]], dtype=uint8)

关于python - 在python中使用cmap对单 channel png进行imread时如何抑制重新缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47597203/

相关文章:

python - 使用错误的输入类型调用函数时打印 "Wrong Type"- Python

python - 递归在python中不起作用

Python程序使用numpy和Scipy计算三重积分?

python - 在 Python 中保存 KDTree 对象?

python - 在 Python 中对稀疏矩阵执行分解

python - 如何将 numpy 与 cygwin 一起使用

python - Twitter 流媒体 : Get trends on Twitter on the basis of countries

python - OpenCV imread 透明度消失了

opencv - 将二维数组读入 opencv mat

java - OpenCV java alpha 混合