首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV伽玛校正exr

OpenCV伽玛校正exr
EN

Stack Overflow用户
提问于 2022-06-26 04:54:04
回答 1查看 182关注 0票数 4

我如何伽马校正一个32位的.exr文件,使其看起来像在这个问题的图像中所期望的结果?基本上是从班轮到sRGB的转换?我从convert EXR to JPEG using ImageIO and Python获得了这段代码(并对其做了一些修改)。

我不太理解这些值(65535),更改它们会导致奇怪的输出映像。

代码语言:javascript
运行
复制
import os
os.environ['OPENCV_IO_ENABLE_OPENEXR']='True'

import numpy as np
import cv2
im=cv2.imread("D:\CG_CONTENT\HDRIS\HDRI_BROWSER\Concrete_Office_Outside_sm.exr",-1)
im=im*65535
im[im>65535]=65535
im=np.uint16(im)
cv2.imwrite("D:\CG_CONTENT\HDRIS\HDRI_BROWSER\Concrete_Office_Outside_sm_test8.png",im)

在这个图像的左边,我得到了代码的输出,但是我需要类似于右边的图像。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-07 19:29:45

因此,为了正确地将线性图像转换为sRGB,我必须使用一个传递函数,对于sRGB,可以用伽马来简化。

这是我最后使用的东西,效果很好。

代码语言:javascript
运行
复制
    #Read image (.exr)
    im=cv2.imread(newPath,-1)
    
    #Remove alpha if present
    im = im[:,:,:3]    
    
    #resize image
    dsize = (400,200)
    ldrDrago = cv2.resize(im, dsize)    
        
    #Convert to sRGB
    ldrDrago = ldrDrago ** (1 / 2.2)
    
    
    #Write jpeg
    cv2.imwrite(filename+".jpg", ldrDrago * 255)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72758982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档