如何正确可视化RAW(ARW,DNG,raw等格式)图像?

本文介绍了正确处理RAW(如ARW,DNG,raw等格式)图像进行可视化的关键步骤,包括白平衡调整、亮度提升和色彩映射。通过这些步骤,可以有效地将RAW图像转化为可显示的高质量图像。
摘要由CSDN通过智能技术生成

为了正确可视化RAW图像,需要做好:白平衡、提亮以及色彩映射。

  1 import numpy as np
  2 import struct
  3 from PIL import Image
  4 import rawpy
  5 import glob
  6 import os
  7 
  8 
  9 def conv(v):
 10     s = 0
 11     for i in range(len(v)):
 12         s += i * v[i]
 13         v[i] = s
 14     return v
 15 
 16 
 17 def diff(v):
 18     n = len(v)
 19     v_diff = np.zeros([len(v)])
 20     for i in range(n-1):
 21         v_diff[n-1-i] = v[n-1-i] - v[n-1-i-1]
 22     return v_diff
 23 
 24 
 25 def gray_ps(rgb):
 26     return np.power(np.power(rgb[:,:,0], 2.2) * 0.2973 + np.power(rgb[:,:,1], 2.2) * 0.6274 + np.power(rgb[:,:,2], 2.2) * 0.0753, 1/2.2) + 1e-7
 27 
 28 
 29 def HDR(x, curve_ratio):
 30     gray_scale = np.expand_dims(gray_ps(x), axis=-1)
 31     gray_scale_new = np.power(gray_scale, curve_ratio)
 32     return np.minimum(x * gray_scale_new / gray_scale, 1.0)
 33 
 34 
 35 def gray_world_balance(x):
 36     mean_ = np.maximum(np.mean(x, axis=(0, 1)), 1e-6)
 37     ratio_ = mean_.mean() / mean_
 38     return np.minimum(x * ratio_, 1.0)
 39 
 40 
 41 def show_bbf(path):
 42     print('====== %s =====' % path)
 43     max_level = 1023
 44     black_level = 64
 45     height = 3024
 46     width = 4032
 47     if path.endswith('dng') or path.endswith('DNG'):
 48         raw = rawpy.imread(path)
 49         im = raw.raw_image_visible.astype(np.float32)
 50         res_path = str.replace(path, '.dng', '.jpg')
 51     elif path.endswith('raw'<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值