当前位置: 首页 > 知识库问答 >
问题:

在Python中使用OpenCV编写HDR图像的正确方法是什么?

邹胜泫
2023-03-14

我想使用OpenCV对现有HDR图像执行算术运算,然后在中写入HDR文件。hdr格式。算术运算对这个问题并不重要,所以让我们假设我想读一个。hdr文件,然后将其写入相同的格式。

我尝试用通常的方法,首先读取hdr文件

img = cv2.imread('original.hdr', -1).astype(np.float32)

然后写为

cv2.imwrite('new_original.hdr', img)

我使用Mac的Finder和OpenHDRViewer来查看HDR图像。当我运行上述代码时,Mac finder能够正确地显示new_original.hdr文件。但是当我尝试使用OpenHDRViewer查看相同的hdr图像时,它会给出一个错误消息-

不支持此文件类型!此网站目前还不支持色调映射或LDR图像。稍后再查看更新。

是原始的。hdr不是有效的hdr图像?

当我使用传统的cv2时,是否有一些基于格式的信息丢失。imwrite()写入HDR图像。正确的方法是什么?

共有2个答案

邓声
2023-03-14

好像是你写的

<代码>img=cv2。imread('original.hdr',-1)。aType(np.float32)

这将产生一个float32数据类型的图像,范围在0到255之间。

我想float32 hdr图像的强度应该限制在0到1之间。(无论如何,即使对于hdr图像,255x动态范围太高,无法显示)

文英达
2023-03-14

@MukulKhanna一世也面临同样的问题。但是,通过将扩展名更改为。exr发件人。imwrite()中的hdr完成了这个技巧,我可以在OpenHDRViewer上查看图像。

 类似资料:
  • 问题内容: 我在一些帖子中看到人们在编写动态HTML时不喜欢在javascript中使用。 为什么是这样?什么是 正确的 方法是什么? 问题答案: 仅在最初解析页面和创建DOM时才起作用。浏览器到达结束标记并且DOM准备就绪后,就不能再使用了。 我不会说使用是正确的还是不正确的,这仅取决于您的情况。在某些情况下,您只需要完成任务即可。查看如何将Google Analytics(分析)注入大多数网站

  • 我定义了一个Xtext语法规则来解析一个简单的时间戳,比如YYYY-MM-DDTHH-MM-SS,但是,当我发送类似于

  • 问题内容: 我正在与我的CompSci教授交谈,他建议将所有String 方法编写为: 而不是: 这两行都可以编译,但是我想知道第一种方法的好处是什么?我一直都是后一种方式。错了吗 什么是普通/常规? 问题答案: 第一种方法确保执行比较时不会收到 NullPointerException 。当您尝试在不存在的对象上调用方法时,抛出(发生)此异常。 以下是一些相关的切线:仔细阅读风险自负 不过要注意

  • 问题内容: 这个问题应该比关于更多。 我有一个子类(在python 2.7中,numpy 1.6.2),并且我发现在对象时未列出的字段名称(因此,ipython的自动完成功能无效)。 为了修复它,我尝试在子类中重写,如下所示: 结果是:。(我发现这里实际上应该在python 3.3中工作…) 作为一种解决方法,我尝试了: 据我所知,这是可行的,但当然并不优雅。 问题: 后一种解决方案对我而言是否正

  • 问题内容: 我正在尝试使用一个使用大量jQuery的Layout / Template的项目。 我已经学会了将模板与ReactJS Project集成在一起,但是,我正在寻找一种可以完全替代jQuery的解决方案。 我的解决方案之一是在内部使用jQuery函数或React函数。 这种方法正确吗?这是正确的方法吗? 我在下面附上一个小例子: 这是我的职能。 问题答案: 这种方法正确吗?这是正确的方法

  • 这就是我目前拥有所有实体类的方式(此处仅显示一个以供参考) 来自lombok参考: @Data注释可能是项目Lombok工具集中最常用的注释。它结合了@ToString、@EqualsAndHashCode、@Getter和@Setter的功能。本质上,在类上使用@数据与使用默认的@ToString和@EqualsAndHashCode注释该类以及使用@Getter和@Setter注释每个字段是一