问题标签 [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 回答
811 浏览

c++ - 如何使用 mingw 编译 openexr

我正在尝试在 windows7 上用 mingw 编译 openexr。我得到这个错误:

为什么我会收到此错误,我该如何解决?

我是 mingw 和 openexr 的新手,所以我可能会做一些傻事!

编辑1:

我正在使用这个脚本来制作它:

我相信 mingw 和 mysys 的设置不正确,系统找不到包含(和库路径)。我怎样才能检查这个?

0 投票
2 回答
1248 浏览

dll - Visual Studio 2012 无法解析 dll 库中的静态字段

我正在使用 Visual Studio 2012 x64 dll 编译 openexr2.0.0,我得到了这个错误:

我使用 dumpbin /exports 在 half.lib 中查找: 半库

在 half.dll 上使用 dumpbin /exports 进行另一个查找: 半个.dll

这两个符号在那里。有趣的是,当我从依赖项中删除 half.lib 时,VS 抱怨 convert 也没有解决。这表明它可以找到convert 而不是_toFloat 和_eLut。区别在于:_toFloat 和 _eLut 都是静态字段,convert 是静态方法。

我的系统是windows 8 x64。有谁知道如何解决这个问题?

0 投票
0 回答
412 浏览

macos - OSX 链接程序:x86_64 的未定义符号

我有一个在使用 .png 文件时可以正常运行的程序。
我正在尝试将其转换为支持 OpenEXR。

该程序使用 macports g++-mp-4.5 编译,并链接到 macports 的 openexr1.7。编译行的相关部分:

/opt/local/bin/g++-mp-4.5 ... -I/opt/local/include/OpenEXR -I/opt/local/include/OpenEXR file.cc ... -L/opt/local/lib - lIlmImf -lHalf ...

运行时,它会在尝试调用 exr 库时执行此操作:

libc++abi.dylib:终止调用抛出异常

当它更改为与 .a 文件 /opt/local/lib/libIlmImf.a /opt/local/lib/libHalf.a 链接时,会出现链接错误

架构 x86_64 的未定义符号:“Iex::throwErrnoExc(std::basic_string, std::allocator > const&)”,引用自:Imf::(anonymous namespace)::writeLineOffsets(Imf::OStream&, std::vector > const&) 在 libIlmImf.a(ImfOutputFile.o) Imf::StdIFStream::StdIFStream(char const*) 在 libIlmImf.a(ImfStdIO.o) Imf::(匿名命名空间)::checkError(std::basic_istream >&,长)在 libIlmImf.a(ImfStdIO.o)

经过搜索,似乎这个(*undefined symbols for x86_64*)是linux风格的mac开发的常见问题,而且似乎不是openexr特有的。但是在阅读了各种帖子之后,我仍然不明白解决方案是什么!

这是关于确切问题的帖子,但是解决方案的解释不够详细,我无法理解: http: //lists.nongnu.org/archive/html/openexr-devel/2011-08/msg00007.html

0 投票
0 回答
933 浏览

python - 使用 OpenEXR 和 numpy 进行伽马编码的 OpenEXR 到 8 位格式的有效方法?

我正在寻找使用伽马编码将 .exr 转换为 8 位 JPEG 的更有效解决方案。目前,我使用OpenEXR 模块numpy。这是代码片段:

我想知道是否有有效的解决方案?

0 投票
0 回答
380 浏览

imagemagick - Imagemagick 转换适用于具有非 RGBA 通道名称的 OpenEXR 文件

由 Pixar 的 RenderMan 生成的 OpenEXR 文件使用不同的、非传统的通道名称,Ci.r, Ci.g, Ci.b, a而不是R, G, B, A. 而 Imagemagick 的转换似乎无法处理这个问题?

给定一个具有以下通道的EXR 文件:

我喜欢通过 Imagemagick 的转换将其转换为 JPEG:

我得到的是一个空的JPEG。有谁知道如何让 Imagemagick 知道不同的频道名称?

0 投票
2 回答
417 浏览

opencl - OpenCL - 将数据写入设备

我很难将 CL_HALF_FLOAT 类型的数据发送到 AMD HD 7990 GPU。

目前我正在使用 OpenEXR 读取 .exr 文件并将数据存储在名为“像素”的缓冲区中。

我确信图像被正确读取,因为如果我使用内置 OpenEXR 函数使用“像素”写入文件,它会产生相同的输出图像。

创建缓冲区对象“inputImageBuffer”不会产生任何错误。

但是,当我尝试使用函数 enqueueWriteBuffer 发送数据时,程序崩溃并且没有返回有用的调试信息。

我认为错误可能在于我如何声明每个缓冲区的大小,但我不确定,任何帮助将不胜感激。

谢谢

0 投票
1 回答
2618 浏览

c++ - C++中RGB到HDR图像格式(EXR格式)的转换

我正在使用openexr将 RGB 图像转换为 EXR 格式,如下所示:

但是,与 Adob​​e Photoshop 等图形编辑软件的结果相比,转换后的图像具有不同的颜色。下面,您可以看到给定的图像,以及转换后的图像(在 Adob​​e Photoshop 中打开): 给定图像 .jpg 转换后的图像 .exr

0 投票
3 回答
2885 浏览

image - 将 [0,1] 范围内的 RGB 值转换为高动态范围(EXR 格式)

我只需要澄清一下如何正确地将 [0,1] 范围内的 rgb 像素值转换为像 openEXR 这样的 HDR 格式的正确范围。

所以我知道,例如,当使用每个通道只有 8 位的 PNG 或 JPG 等低动态范围格式时,您只需将每个 rgb 值乘以 2^8-1 = 255 并钳制,以便所有值都范围 [0, 255]。

OpenEXR 和其他 HDR 格式使用每通道 16 位的半精度格式。那么我是否只是做和以前一样的事情,并将每个通道乘以 2^16-1 = 65535,以便我的新范围变为 [0, 65535]?

编辑

所以我尝试做我上面写的但是当我尝试在photoshop中显示openEXR文件时它是完全白色的。似乎任何大于 10 左右的值都太亮,以至于 Photoshop 无法正常显示,我觉得这很奇怪。因此,除非 Photoshop 显示出现问题,否则这似乎不是正确的方法。

0 投票
1 回答
520 浏览

c++ - Nuke 未定义符号:_ZN9Imath_2_16Rand325nextfEv

我正在为 linux 下的 Nuke8 编译一个插件。所有编译都没有问题,但是当我尝试加载插件时出现以下错误:

当我对plugin.so执行“ldd”时,我有这个:

所有库似乎都可以加载。我有一个“libDDImage.so => not found”,但是当我在示例插件上执行此操作时,我有同样的事情。

我认为问题来自 Imath 库,但我不知道如何解决它。有人有想法吗?提前致谢。

最好的

0 投票
1 回答
2304 浏览

android - 如何在 Android 中加载多通道 EXR

我正在使用 OpenCV for Android 来加载 EXR 图像:

这适用于图像的前 3 个通道(RGB 排序除外)。我可以像这样显示生成的矩阵:

但是,无论我在 imload 中使用的标志组合如何,当我知道我的测试图像包含 9 个通道时,我从来没有看到通道数大于 3 (CV_32FC3)。其中嵌入了 3、3 通道图像。如何使用 OpenCV 或其他方法访问这些额外的频道?

谢谢,杰森