我想请教更有经验的人如何使用oiio的python绑定来获取图像中像素的RGB值。
我刚刚开始使用oiio,并且不熟悉这个库以及代码级的图像操作。
我翻了翻文档,但我不太明白参数是如何工作的。它似乎不像python那样工作,我很难弄清楚,因为我不懂C语言。
A)使用什么命令来获取像素信息(似乎get_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)发布于 2019-10-24 00:56:08
OpenImageIO有几个用于处理图像的类,具有不同的抽象级别。假设您对Python类感兴趣,我认为从ImageBuf (使用OpenImageIO 2.x)访问单个像素的最简单方法如下所示:
import OpenImageIO as oiio
buf = ImageBuf ("foo.jpg")
p = buf.getpixel (50, 50) # x, y
print (p)P将是一个numpy数组,因此this将产生如下输出
(0.01148223876953125, 0.0030574798583984375, 0.0180511474609375)https://stackoverflow.com/questions/58513742
复制相似问题