有没有办法用OpenImageIO的python绑定从图像中提取像素颜色信息

2024-04-18 03:30:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想问更有经验的人如何使用oiio的python绑定获得图像中像素的RGB值。你知道吗

我才刚刚开始使用oiio,对库以及代码级的图像处理还不熟悉。你知道吗

我翻了翻文档,不太明白参数是如何工作的。它似乎和python的工作原理不同,我很难理解,因为我不懂C

A)甚至可以使用什么命令来获取像素信息(似乎get\u pixel可以工作)

以及

B)如何使其工作。我不完全理解参数要求。你知道吗

编辑:

我正在尝试将访问所有像素以获得文档中的平均颜色的C示例转换为pythonic,但却一无所获。你知道吗

谢谢你的帮助。你知道吗

编辑:添加代码

buffer = oiio.ImageBuf('image.tif')

array = buffer.read(0, 0, True)

print buffer.get_pixels(array)

我收到的错误消息是:

# Error: Python argument types in
#     ImageBuf.get_pixels(ImageBuf, bool)
# did not match C++ signature:
#     get_pixels(class OpenImageIO::v1_5::ImageBuf, enum OpenImageIO::v1_5::TypeDesc::BASETYPE)
#     get_pixels(class OpenImageIO::v1_5::ImageBuf, enum OpenImageIO::v1_5::TypeDesc::BASETYPE, struct OpenImageIO::v1_5::ROI)
#     get_pixels(class OpenImageIO::v1_5::ImageBuf, struct OpenImageIO::v1_5::TypeDesc)
#     get_pixels(class OpenImageIO::v1_5::ImageBuf, struct OpenImageIO::v1_5::TypeDesc, struct OpenImageIO::v1_5::ROI)

Tags: 代码文档编辑参数getbuffer像素struct
1条回答
网友
1楼 · 发布于 2024-04-18 03:30:13

OpenImageIO有几个处理图像的类,具有不同的抽象级别。假设您对ImageBuf类感兴趣,我认为从Python(使用OpenImageIO 2.x)访问单个像素的最简单方法如下所示:

import OpenImageIO as oiio
buf = ImageBuf ("foo.jpg")
p = buf.getpixel (50, 50)   # x, y
print (p)

p将是一个numpy数组,因此这将产生如下输出

(0.01148223876953125, 0.0030574798583984375, 0.0180511474609375)

相关问题 更多 >