我有一个 RGB 图像。我想将它转换为 numpy 数组。我做了以下
im = cv.LoadImage("abc.tiff")
a = numpy.asarray(im)
它创建一个没有形状的数组。我假设它是一个 iplimage 对象。
原文由 Shan 发布,翻译遵循 CC BY-SA 4.0 许可协议
PIL(Python 图像库)和 Numpy 可以很好地协同工作。
我使用以下功能。
from PIL import Image
import numpy as np
def load_image( infilename ) :
img = Image.open( infilename )
img.load()
data = np.asarray( img, dtype="int32" )
return data
def save_image( npdata, outfilename ) :
img = Image.fromarray( np.asarray( np.clip(npdata,0,255), dtype="uint8"), "L" )
img.save( outfilename )
‘Image.fromarray’ 有点难看,因为我将传入数据剪辑为 [0,255],转换为字节,然后创建灰度图像。我主要以灰色工作。
RGB 图像类似于:
out_img = Image.fromarray( ycc_uint8, "RGB" )
out_img.save( "ycc.tif" )
原文由 David Poole 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
4 回答936 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
您可以使用更新的 OpenCV python 接口(如果我没记错的话,它从 OpenCV 2.2 开始可用)。它本机使用 numpy 数组:
结果: