问题标签 [openimageio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1170 浏览

c++ - 无法将 OpenImageIO 与 CMake 链接

我一直在尝试使用 CMake 将 OpenImageIO 链接到可执行文件,但在构建的链接阶段不断出现错误。有谁知道如何正确设置 CMakeLists.txt 以便库链接?

CMakeLists.txt

这是运行make文件的输出...

0 投票
1 回答
1336 浏览

python - 使用 Python OpenImageIO 调整图像大小保持纵横比

在使用 OpenImageIO 和 python 进行一些额外处理后,我正在尝试调整图像大小。然而,这个过程似乎不像 PIL 那样简单。在 PIL 中,我可以提供一个新的分辨率,例如 512 x 512,它会调整我的图像大小,而不管它的当前像素方面如何,并调整它的大小以适应它的最大长度,使其适合 512x512 的盒子。如何使用 OpenImageIO 做到这一点?

目前这只会拉伸图像以适应 512x512。

因此,有利于宽度的图像应根据宽度值拟合: 在此处输入图像描述

而偏爱高度的图像应根据高度值拟合: 在此处输入图像描述

0 投票
1 回答
334 浏览

python - 在 Python 中将 PSD 图层导出到 EXR

我正在尝试编写一个程序来读取 .psd 文件,将图层拆分为单独的图像(保持原始图像的尺寸)并将它们导出为 EXR 文件。

我目前正在尝试使用 OpenImageIo 库来完成此操作,但文档对于如何在 python 中实现这一点并不是特别清楚。

我已经成功地读取了完整的 .psd 并将其导出到 .exr,但我一直在尝试的一切似乎都表明有不止一层(子图像)可以与之交互。

在那儿:

  1. 我遗漏了一些明显的东西,或者
  2. 更好的方法来实现这一点?

边注:

我使用 psd_tools2 取得了一些成功,但图像无法导出为 .exr,也不是正确的尺寸。

0 投票
0 回答
185 浏览

c++ - 打开 .EXR 文件时 OpenImageIO 崩溃

我正在尝试打开一个 .exr 文件,但程序在 xtree#275 处崩溃

在此处输入图像描述

我认为问题发生在 exrinput.cpp#804

有关更多上下文,这是功能

这是打开 .exr 文件的代码

0 投票
1 回答
475 浏览

python - 尝试使用 python 和 openimageIO 提取子图像失败

我刚刚开始使用 OpenImageIO 编写东西。在我的实验中,我试图从 exr 文件中提取一些选定的子图像并将它们写入另一个文件。但是,当我从文档中尝试以下示例时,我不断收到错误消息。

当我尝试这个时,我收到以下错误:

我想知道是否有人可以指出我在这里做错了什么?很感谢任何形式的帮助。

非常感谢

0 投票
0 回答
117 浏览

openimageio - 如何将 uint16_t 图像数据转换为 uint8_t 图像数据

如何使用 openimageio c++ api 将 16 位整数类型的图像数据转换为 8 位整数类型?这可能吗?

我曾尝试使用 imageio.h 中存在的 convert_types() 但结果不正确,因为我会传递错误的 'n' 值。什么参数 'n' 表示 convert_types()?应该传递什么值?

0 投票
1 回答
117 浏览

c++ - 如何使用 OpenImageIO 和 read_tiles() 读取平铺图像

我在使用 VisualStudio 和 OIIO 2.0.8 在 Windows 上读取平铺图像时遇到问题。为了测试,我使用 Arnold 渲染了一个图像,选中了 tiled 选项,但没有 tile 选项。虽然读取扫描线图像工作正常,但平铺渲染不会读取任何内容。我可以在调试模式下看到 tilePixels 数组在读取磁贴之前和之后根本没有变化。read_tiles 调用的结果始终为真。

也许任何人都可以看看并告诉我是否有明显的问题。

这是我使用的仍然有点混乱的代码。

0 投票
1 回答
400 浏览

python - Is there a way to extract pixel color information from an image with OpenImageIO's python bindings

I want to ask the more experienced people how to get the RGB values of a pixel in an image using oiio's python bindings.

I have only just begun using oiio and am unfamiliar with the library as well as image manipulation on code level.

I poked around the documentation and I don't quite understand how the parameters work. It doesn't seem to work the same as python and I'm having a hard time trying to figure out, as I don't know C.

A) What command to even use to get pixel information (seems like get_pixel could work)

and

B) How to get it to work. I'm not understanding the parameters requirements exactly.

Edit:

I'm trying to convert the C example of visiting all pixels to get an average color in the documentation into something pythonic, but am getting nowhere.

Would appreciate any help, thank you.

Edit: adding the code

the error message I get is:

0 投票
2 回答
842 浏览

python - 使用 openimageio 从 32 位 exr 转换为 8 位 tiff 图像的正确方法是什么

我正在尝试将一堆 32 位 OpenExr 文件转换为 8 位 tif。

对于转换过程,我使用了 oiio 文档中提供的 python 配方。

从 exr 到 tif 的转换工作正常,但如果我添加我想要作为参数的比特率(完全遵循文档中的 python 公式),我什么也得不到

后来我尝试先转换文件格式,然后使用 ImageBufAlgo.colorconvert 但我只是收到了很多错误消息。

我想做的只是将 32 位图像转换为 8 位并使用正确的伽玛设置。

首先我试过

这根本不起作用。代码运行了,但我指定的目录中没有图像。

然后我把它改成

这行得通!我有图像,除了它们都是 32 位文件,我需要将其更改为 8 位。

所以我想我会尝试循环遍历新的 tif 图像,然后分步进行颜色转换。我只测试了一张图像,看看我是否可以让颜色转换功能正常工作。

就像文档中所说的那样。相反,我得到的是一堆错误消息,这些错误消息与我昨天最初遇到的提取像素颜色问题中的错误消息并不太相似

非常感谢任何关于我没有得到的帮助和解释。

编辑:我正在添加我在拉里的回复之后尝试的 1.7 代码:

我得到的错误信息是这样的:

0 投票
0 回答
252 浏览

c++ - 使用 OIIO 时架构 x86_64 的未定义符号

我正在尝试创建一个函数来使用 openimageio 轻松写出 exr 图像文件。每当我编译我的测试程序时,我都会收到以下错误。

架构 x86_64 的未定义符号:“OpenImageIO_v2_1::ImageOutput::create(std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&)”,引用自: libvol.a(OIIOFiles.o) 中的 writeOIIOImage(std::__cxx11::basic_string, std::allocator >, Image&, float, float) writeDeepImage(std::map, std::allocator >, Image*, std::更少,std::allocator > >,std::allocator,std::allocator > const,Image*> > >&,char const*) in libvol.a(OIIOFiles.o) ld:找不到符号架构 x86_64

我真的不确定我做错了什么。任何提示将不胜感激。

编译器命令行是:

供参考的是我的 OIIOFiles 的 cpp 文件