问题标签 [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.
hdrimages - 16 位浮点数据类型
有没有人有在应用程序中使用 16 位浮点类型的经验。这种相对较新的数据类型用于计算机图形学。它由几个规范定义:OpenEXR、DirectX 和新的 IEEE-754 2008 标准。
在 WinHEC 2008 上,Microsoft 的 Chas Boyd 有一个演示文稿来宣传这种数据类型。(我不在那里,但我看到了幻灯片。)“float-16 是新字节”。
我的问题是:是否有人将此数据类型用于 DirectX 纹理之外的任何内容?
如果是这样,为什么?你的应用程序在做什么?
如果是这样,您是否需要完整的 IEEE 支持,包括 denomals、NaN 和 #Inf?
opencv - 在 OpenCV 中使用 EXR 图像
我目前正在使用 OpenEXR 进行一个项目,我想实现一些 Blob 检测算法。为此,我想我可以使用 OpenCV,因为它在文档中说它可以打开 OpenEXR 格式文件。
我已经安装了所有的库,并且像我一直在做其他事情一样工作。我用 openCV cvLoadImage 打开一个简单的 jpg 文件。它工作正常。但是当我尝试打开任何 .exr 文件时,它并不喜欢它。我得到一个灰色窗口,应该有图像显示。
有没有人用 OpenCV 和 OpenEXR 库一起做任何测试?他们为你工作了吗?你怎么看?
谢谢。
c++ - OpenEXR 图像加载
我已经开始使用 OpenEXR 加载 EXR 图像。我必须使用浮点类型来获取 RGB 像素。
对于 RGB 图像,加载没有问题,使用以下代码:
但我想知道这个库如何解码/转换 Y-RY-GY 图像(亮度 + 色度通道)并获得浮点 RGB 像素数据。
c++ - 有时我在反转数组时得到 EXEC_BAD_ACCESS(访问冲突)
我正在使用 OpenEXR 库加载图像。
这工作正常,除了图像被旋转 180 度加载。我使用下面显示的循环来反转数组,但有时程序会退出并且 xcode 会给我一个 EXEC_BAD_ACCESS 错误(我认为这与 msvc 中的访问冲突相同)。它不会每次都发生,只是每5-10次发生一次。
理想情况下,我希望将数组反转到位,尽管这每次都会导致错误并且使用 memcpy 会失败但不会导致错误,只是一个空白图像。我想先知道是什么导致了这个问题。
这是我正在使用的代码:(Rgba 是 OpenEXR 中定义的 4 个“Half”sr、g、b 和 a 的结构)
提前致谢!
image-processing - 将 EXR 图像序列转换为 .MOV
我正在寻找从 OpenEXR 图像序列创建 Quicktime 电影 (PhotoJpeg) 的编码器。
任何帮助将非常感激
makefile - 在cygwin下构建时找不到头文件
我正在尝试在 cygwin (OpenEXR) 下构建某个库,但出现以下错误:
half.h
使用#include <half.h>
, 引用,实际上是我make/make install
之前成功运行的另一个库的一部分。
问题是——当使用#include
with时<>
,预处理器期望在哪里找到指定的文件?
(我刚刚在 中找到它/usr/local/include/OpenEXR
,但我不知道为什么预处理器不能)。
更新:我还发现:
生成文件
生成文件.am
这实际上降低了我对问题可能是什么的理解。
更新 2:因此,通过在 makefile 中重新定义一些变量,我发现$(CXXCOMPILE)
make 似乎不是 run $(CXX) $(CXXFLAGS)
,CXXFLAGS
而是只是-g -O2
. 好的,我不知道$(CXX) $(CXXFLAGS)
如果这个组合在makefile中的任何地方都没有使用,除了$(CXXCOMPILE)
没有运行的地方,它是如何运行的。我可以添加我-I
的,CXXFLAGS
但我觉得需要更多的添加,所以我更愿意找到问题的根本原因。
(我不确定这是超级用户问题还是堆栈溢出问题,因为我在 C++/Linux 方面的开发技能几乎不存在。)
compiler-errors - 在 cygwin 中编译 OpenEXR
我正在尝试用 cygwin 编译 OpenEXR,但我遇到了麻烦。
到目前为止我所做的:
我需要这个,因为它是 OpenEXR 需要它。它运行正常,并在 /usr/local 中创建了三个文件夹bin
:include\OpenEXR
和lib
.
然后我继续 OpenEXR,这就是我所做的:
一切运行正常,但是当我这样做make
时,出现以下错误:
虽然我不知道为什么会发生这种情况,但我可以通过这样做来解决它:
但是,当我遇到make
另一个错误时,我被困在这里:
这会发生在任何人身上吗?我已经用谷歌搜索了很多,但找不到解决方案。我希望有人能帮帮忙。
java - OpenExr、Swig 和 Java
我尝试创建一个解决方案,允许我在 Java 中读取 OpenExr 图像并将像素数据用于 JOGL 中的纹理。因为在 Java 中没有免费的 OpenExr 库(没有找到任何工作),我的想法是使用 ILM OpenExr 库编写一个小型 c++ 程序并用 Swig 包装它,这样我就可以使用 JNI 加载和使用 dll爪哇。
我构建了 OpenExr 库并在 Visual Studio 2005 中设置了 Swig。它已经创建了一个 dll,允许我获取图像的尺寸,所以我猜工具链运行正常。
h 文件:
.cpp 文件:
Rgba 结构:
Swig 接口文件:
Java测试程序:
就像我说的那样,这是可行的,但我不是为每个像素得到这个像素数据:
最初的想法是我必须在某个时候将像素数据复制到 Java 缓冲区中才能在 JOGL 中使用它。所以我写了getScuct(int i, int j) 方法来获取一个像素的rgba-data,并尽量保持JNI接口简单。
现在的问题是 Swig 不知道如何将 ILM half 数据类型转换为 Java 数据类型。起初我尝试将浮点值存储在 Rgba 结构中,因为 Swig 知道如何转换这些值。根据 OpenExr 文档,将 half 转换为 float 应该没问题,但每次我尝试这样的事情时:
我从 VS 收到一条错误消息,上面写着:
我想出的另一个解决方案是使用 Swig 类型映射并告诉包装器将 ILM 一半转换为 Java 浮点数,但我不确定这是否可能。
因为我对 c++ 和 VS 知之甚少,而且这是我第一次使用 Swig 和 JNI,所以我完全不知道如何解决这个问题。
那么,有谁知道如何解决这个问题,以便我可以将像素数据转换为 java 数据类型?
c++ - 从管道顺序读取 OpenEXR
我正在尝试从一个管道读取 EXR 流,处理它们并将结果写入另一个管道。在这种情况下,它们被命名为管道,但它们也可以是标准输入和标准输出。
当管道干涸时会出现我的问题。OpenEXR 不喜欢尝试读取任何内容,并且会因以下堆栈跟踪而崩溃。
我真的希望 OpenEXR 阻塞线程,直到有更多数据可用,但是如果有一些方法可以手动检查是否有更多数据可以做,只要它有点健壮。
谢谢。
python - 在 OSX 10.7 上读取或写入 OpenEXR 时,OpenCV 2.4.3 引发错误
我正在 OSX 10.7.5 上运行 OpenCV (2.4.3) 的 brew 安装。我已经尝试过 OpenEXR (1.7.0) 的 brew install 和下载它们的源代码并直接编译 1.7.1,因为我读到它的界面可能已经发生了一些变化。两个版本的 OpenEXR 都可以让我在预览中打开 EXR 文件。每次新安装 OpenEXR 后,我都会返回,卸载 OpenCV 并重新安装。OpenCV 正在检测正确的 OpenEXR:
当我尝试在 python 中通过 cv2 读取或写入 EXR 时,我得到
这是完整的崩溃报告:
具体来说,这些错误是由于:
有什么建议么?
编辑:我还尝试从 OpenCV 网站重新编译 2.4.3 的源代码,并且遇到了完全相同的问题。