HDRPlus 代码配置

一、环境版本要求

  1. 论文HDR_Plus:Burst photography for high dynamic range and low-light imaging on mobile cameras
  2. 源代码:https://github.com/timothybrooks/hdr-plus
  3. llvm10.0.0 halide10.0.0 cmake3.16以上

tps:现在从上面链接下的代码是21年新上传的,不再适用于老版本的环境。如果下的是老版本的环境可以参考https://blog.youkuaiyun.com/weixin_38342946/article/details/103121357?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-103121357-blog-129108421.235%5Ev38%5Epc_relevant_sort_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-103121357-blog-129108421.235%5Ev38%5Epc_relevant_sort_base3&utm_relevant_index=3

二、一些踩坑小建议

  1. 如果没有特殊要求,不要从llvm+clang一步步编译到halide,再编译hdrplus!会死掉的。。。
  2. 如果一定要下载的话,https://blog.youkuaiyun.com/chikey/article/details/85004556
    参考这个,可以走的稍微远一点
  3. 直接用halide 的预编译版本 就是https://github.com/halide/Halide/releases?page=2
    在这里插入图片描述
    在这里插入图片描述

三、编译

1. halide预编译版本

step1:下载halide预编译版本
step2:

mkdir Environment
cd Environment
mkdir halide
cd halide
tar -xvf Halide-10.0.0.tar.xz#就是下载的预编译压缩文件

解压出来就是下面这样的文件目录

在这里插入图片描述
step3:配置环境变量
https://blog.youkuaiyun.com/chikey/article/details/85004556
参考这个

sudo gedit /etc/profile#这个配置文件优先级很高,全配置在这里吧
export LLVM_HOME=/home/loloo/Environment/llvm/llvm10.0.0/bin
export PATH=$LLVM_HOME:$PATH

export Halide_DIR="/home/loloo/Environment/halide/Halide-10.0.0-x86-64-linux"

export Halide_LIB="/home/loloo/Environment/halide/Halide-10.0.0-x86-64-linux/lib"

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Halide_LIB
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/lib
#上面这两句,还要配置软连接
export PATH=$Halide_DIR:$PATH
记得给libHalide.so  libHalide.so.10都配置上软链接
sudo ln -s 源文件地址 /usr/lib/libHalide.so #按照这个链接上
sudo ln -s 源文件地址 /user/include/xxx.h


如果成功配置的话,可以下载halide-learning测试

2. hdrplus编译

大致的步骤可以按照制之前给的一个老的版本的教程,但是编译的时候会存在一些问题

问题1:找不到FindHalide.cmake,

step1:先按照报错的提示,配置CMAKE_MOUDLE_PATH=,这个指向的是halide/lib/cmake/Halide。

step2:自己写一个FindHalide.cmake
先写上

FIND_PATH(Halide_INCLUDE_DIR Halide.h
          /usr/local/include
          #/home/loloo/Environment/halide/Halide-10.0.0-x86-64-linux/include
          )
#找头文件
FIND_LIBRARY(Halide_INCLUDE_LIBRARIES NAMES Halide
             PATHS
             /usr/local/lib
             /usr/lib
             )
#找lib

然后把这个文件复制到/halide/lib/cmake/Halide下,和其他那些.cmake的文件一起。

step3:这样还是会报比如add_halide_library找不到等错误,根据上面会找不到.cmake的那些库。
粗暴的解决办法,把HalideConfig.cmake的全部的东西复制到FindHalide.cmake下面。

问题2:注意这个FindHalide.cmake

这个其实是直接对应于CMakeList.txt里面的find_package(),这个会先根据CMAKE_MOUDLE_PATH去找Findxxx.cmake,其他的细节可以百度一下。
这个xxx其实就是find_package(xxx REQUIRED),对应于CMakeList.cmake就是find_package(Halide REQUIRED)
所以名字要对应起来。

### HDR 数据增强的技术实现方法 HDR(High Dynamic Range,高动态范围)数据增强技术的核心目标在于提高图像或视频的质量,使其更接近于人类视觉感知的真实世界效果。以下是几种常见的 HDR 数据增强技术和其实现方法: #### 1. 多曝光融合 多曝光融合是一种经典的 HDR 增强技术,主要通过捕捉同一场景下的多张不同曝光程度的照片并将其合成一张高质量的 HDR 图像。这种技术能够有效保留亮部和暗部细节[^3]。 具体实现过程如下: - **采集阶段**:利用摄像头或其他成像设备,在不同的曝光设置下捕获一系列低动态范围(LDR)图像。 - **对齐校正**:由于拍摄过程中可能存在轻微抖动,需先对这些 LDR 图像进行几何对齐。 - **权重分配**:根据不同像素区域的重要性赋予相应的权值,通常亮度较低的部分给予更高权重。 - **合并计算**:基于加权平均或者其他复杂的算法模型完成最终 HDR 图像生成。 ```python import cv2 import numpy as np def merge_exposures(images, times): alignMTB = cv2.createAlignMTB() alignMTB.process(images, images) calibrateDebevec = cv2.createCalibrateDebevec() response_debevec = calibrateDebevec.process(images, times=times) mergeDebevec = cv2.createMergeDebevec() hdr_image = mergeDebevec.process(images, times=times, response=response_debevec) return hdr_image ``` --- #### 2. Inverse Tone Mapping (ITM) Inverse Tone Mapping 是一种用于将 SDR 内容转换为 HDR 效果的方法。它通过对原始图像应用特定映射函数来扩展其动态范围,从而恢复被压缩掉的信息。 此方法涉及以下几个方面: - 构建合适的 ITM 曲线以适应不同类型的内容需求; - 结合局部对比度调整机制改善整体观感质量; - 控制噪声放大效应以免损害画质。 --- #### 3. 开源项目支持——Google HDR+ Google 提出了名为 HDR+ 的先进算法框架,并开放了部分实现代码供社区学习借鉴[^4]。该项目专注于解决弱光条件下的摄影难题,同时也适用于其他复杂光线环境中的数据优化任务。 核心特点包括但不限于: - 利用贝叶斯估计理论预测最佳曝光参数组合; - 自动检测运动物体防止模糊现象发生; - 支持多种硬件平台上的快速部署操作。 安装与测试命令示例: ```bash git clone https://github.com/Titaniumtown/hdrplus.git cd hdrplus && make all ./test_hdr_plus input_images/ ``` --- #### 4. 编码效率改进措施 针对日益增长的 HDR 视频消费趋势,国际标准化组织 MPEG 和 VCEG 正积极研究如何借助现有编码器架构或者开发全新解决方案达成更高的压缩比率同时维持良好画质表现的目标[^1]^。 典型策略有: - 引入专门设计的量化矩阵适配 HDR 特征分布特性; - 加强帧间预测精度减少冗余信息量传输负担; - 推广使用下一代编解码标准如 H.266/VVC 中新增的功能选项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值