问题标签 [openexr]

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 回答
722 浏览

c++ - 加载 OpenEXR 单通道深度图图像

我正在尝试使用一个通道加载 OpenEXR 格式的深度图像,但是,根据此文档,我无法确定需要使用的格式:http ://www.openexr.com/documentation/ReadingAndWritingImageFiles.pdf

编辑:我设法读取了文件,但是当我尝试检查这些值时,它们被四舍五入到最接近的整数,但我不明白为什么会这样。

EDIT2:exr 文件可以从这里访问:https ://drive.google.com/file/d/1q_AmJgzJjs3bOCCpmcC-X-iAH88PY9dG/view?usp=sharing

0 投票
1 回答
340 浏览

ios - iOS 金属。如何对所有色彩作品使用“半”格式?

an 的默认颜色格式MTKViewbgra8Unorm. 我更喜欢使用这种half格式(参见:OpenEXR)。我不清楚 Metal 提供的各种格式中的哪一种对应half

0 投票
1 回答
375 浏览

imagemagick - 无法使用带有 openEXR 的 ImageMagick 更改 EXR 文件的通道深度

我想将 16 位 (HALF) exr 图像转换为 32 位 exr 图像。我正在尝试使用使用 openEXR 构建的 ImageMagick 来做到这一点,但我无法做到这一点。

我有 Build ImageMagick-7.0.8-23-Q8-windows-x64-static 并启用了 HDRI 标志。我正在使用 16 位 RGBA EXR 文件。当我运行以下命令时:

识别 -verbose "Desk.exr"

它将通道深度设为 8 位。

格式:EXR(高动态范围 (HDR))
类别:DirectClass
几何:644x874+0+0
单位:未定义
色彩空间:RGB
类型:TrueColorAlpha
基本类型:未定义字节序:
未定义
深度:8 位
通道深度:
红色:8-位
绿色:8 位
蓝色:8 位
Alpha:1 位

我试图通过指定 -depth 16 和 32 使用转换工具来更改它,但它仍将通道深度显示为 8 位。

int main() {

}

我检查了输出文件的通道深度,我设置了 32 位,但它也显示:
深度:8 位
通道深度:
红色:8 位
绿色:8 位
蓝色:8 位
Alpha:1 位

我已经用 Quantum 8 位构建了 imagemagick,我希望它应该适用于 16 位和 32 位。

0 投票
0 回答
185 浏览

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

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

在此处输入图像描述

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

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

这是打开 .exr 文件的代码

0 投票
0 回答
560 浏览

windows - 为 windows 编译 openexr 时出现 Visual Studio 和 cmake 错误

抱歉,因为我对此很陌生且缺乏经验,但我正在尝试在 Windows 上编译 OpenExr-2.3.0(从http://www.openexr.com/downloads.html下载并提取到“exr_2_3_0”目录)使用 cmake 和 Visual Studio 15。在详细介绍之前,我将概述我遇到的基本问题:

  1. ilmbase 构建应该做的不仅仅是在相关的包含目录中创建一些头文件吗?(我知道 2.2.0 构建确实如此,我觉得这是缺少的)。
  2. 我对如何告诉 openexr 构建这些头文件在哪里感到困惑。它似乎永远无法找到它们,所以我很确定我要么将它们构建到错误的位置,要么错过了一步。

自述文件建议以下内容:

  1. 启动命令窗口,使用 CMakeLists.txt 导航到 IlmBase 文件夹,然后键入命令: setlocal del /f CMakeCache.txt cmake -DCMAKE_INSTALL_PREFIX= -G "Visual Studio 10 Win64" ..\ilmbase

  2. 在 Windows 资源管理器中导航到 IlmBase 文件夹,打开 ILMBase.sln 并构建解决方案。构建成功后,右键单击安装项目并构建。它会将输出安装到您在上一步中设置的路径。

  3. 访问http://www.zlib.net并下载 zlib

  4. 启动命令窗口,使用 CMakeLists.txt 导航到 OpenEXR 文件夹,然后键入命令: setlocal del /f CMakeCache.txt cmake -DZLIB_ROOT= -DILMBASE_PACKAGE_PREFIX= -DCMAKE_INSTALL_PREFIX= -G "Visual Studio 10 Win64" ^ ..\openexr

  5. 在 Windows 资源管理器中导航到 OpenEXR 文件夹,打开 OpenEXR.sln 并构建解决方案。构建成功后,右键单击安装项目并构建。它会将输出安装到您在上一步中设置的路径。

所以我在源目录和我运行的源目录中创建了一个部署文件夹:

这会在 ilmbase 文件夹中构建一个 sln 文件,该文件构建时没有错误,但该解决方案中的安装项目只会在“source/deploy/include/OpenEXR”文件夹中创建一堆头文件。同样,这是它应该做的全部,还是应该有一个 lib 目录,其中包含在此阶段构建的 dll 文件等?

我已经成功构建了 zlib,没有任何错误,但是当我尝试第 4 点时,我遇到了以下错误:

IlmImfExamples/CMakeLists.txt:3 (ADD_EXECUTABLE) 目标“IlmImfExamples”链接到目标“IlmBase::IlmThread”的 CMake 错误,但未找到目标。也许 IMPORTED 目标缺少 find_package() 调用或缺少 ALIAS?

我猜我应该添加从 cmake 到新文件的路径?即使我打开生成的 openexr.sln 并尝试构建,IlmImfExamples 也无法构建。如果我手动添加它抱怨它仍然无法构建的头文件,抱怨它找不到 OpenEXR::IlmImf.lib 没有构建它是正确的,但我不知道为什么,或者在至少我找不到它,如果它有。

我确实在 github 上看到了这个线程: https ://github.com/openexr/openexr/issues/355 说 CMakeLists.txt 中存在错误,我也已更改。但是在这个阶段,我很快就碰到了一堵知识的砖墙,所以非常感谢任何帮助。

谢谢,稻田

0 投票
2 回答
2163 浏览

python-2.7 - 读取、处理和显示 .EXR 格式图像中的像素

我想读取 exr 文件格式的图像并查看相应位置的像素强度。并且还想将它们堆叠在一起,形成一个神经网络。如何对这些格式进行正常的图像处理?请帮我做这件事!

我已经使用 OpenEXR 文件尝试了此代码,但无法继续进行。

我预计会看到普通的图像处理工具,例如

0 投票
1 回答
475 浏览

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

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

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

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

非常感谢

0 投票
1 回答
4355 浏览

python - 为 python 安装 OpenEXR 失败

我正在尝试安装 OpenEXR。

使用 :

macOS 10.14.5

Python 3.6.5

Xcode 版本 10.2.1

我试过了

但出现以下错误:

如果我尝试安装其他软件包,则同样适用:

https://github.com/jamesbowman/openexrpython

或者

然后我尝试了:

并且安装没有错误。但是在python中导入时找不到我。

任何人都知道为什么以及如何解决这个问题?

大多数安装指南建议通过 pip 安装,但我收到上面的错误。问题似乎是找不到stdlibc++?

0 投票
0 回答
72 浏览

c++ - 尝试编译包括 openexr 的项目时无法解析的外部符号 globalThreadCount

我已经使用 Visual Studio 2017 克隆了pbrt-v3 存储库。我尝试编译一个包含 Transform.h 的项目,但我从链接器收到以下错误:

LNK2019 未解析的外部符号“int __cdecl Imf::globalThreadCount(void)”(?globalThreadCount@Imf@@YAHXZ) 在函数“class pbrt::RGBSpectrum * __cdecl pbrt::ReadImageEXR(class std::basic_string,class std::分配器 > const &,int *,int *,class pbrt::Bounds2 *,class pbrt::Bounds2 *)" (?ReadImageEXR@pbrt@@YAPEAVRGBSpectrum@1@AEBV?$basic_string@DU?$char_traits@D@std @@V?$allocator@D@2@@std@@PEAH1PEAV?$Bounds2@H@1@2@Z)

我已经使用 CMake for Visual Studio 编译并安装了 openexr。我已经添加

libpbrt.lib libglog_static.lib IlmThread-2_2.lib Half.lib Iex-2_2.lib IexMath-2_2.lib Imath-2_2.lib

作为项目设置中的附加依赖项。我无法弄清楚在哪个库globalThreadCount中定义。那么,我错过了哪个图书馆?

0 投票
1 回答
983 浏览

python - “pip install openexr”上的语法错误:错误的编译器?

我正在尝试将 OpenEXR 的 python 绑定安装(编译)到我的模块。我正在使用 Python 3.8.0。首先,我只是简单地尝试过pip install openexr导致在 OpenEXR 的 C++ 安装中缺少头文件而导致的错误。所以我已经安装了 vcpkg 和 OpenEXR 的东西。执行

OpenEXR.cpp由于Python 绑定中的语法错误而失败。我已经从这里手动下载了模块并尝试安装/编译它,这会导致同一文件中出现相同的语法错误。

我的 Visual Studio 在文件中没有发现任何问题,所以我假设问题一定是 pip 用于安装该模块的 C++ 编译器。我安装了 Buildtools 2019 并添加了 2017 的,但没有帮助。我想我必须为 pip 指定编译器,但在这里我在互联网上找不到任何关于这样做的示例。

我的问题:你如何指定 pip 用来安装 OpenEXR 的编译器?


提到的语法错误:


您可以在此处找到 Python 3 和 2 的 OpenEXR 绑定的二进制文件。无论如何,如果有人知道如何调整 pip 完成的编译过程以使其工作,请分享。