一、环境版本要求
- 论文HDR_Plus:Burst photography for high dynamic range and low-light imaging on mobile cameras
- 源代码:https://github.com/timothybrooks/hdr-plus
- llvm10.0.0 halide10.0.0 cmake3.16以上
tps:现在从上面链接下的代码是21年新上传的,不再适用于老版本的环境。如果下的是老版本的环境可以参考https://blog.csdn.net/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
二、一些踩坑小建议
- 如果没有特殊要求,不要从llvm+clang一步步编译到halide,再编译hdrplus!会死掉的。。。
- 如果一定要下载的话,https://blog.csdn.net/chikey/article/details/85004556
参考这个,可以走的稍微远一点 - 直接用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.csdn.net/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)
所以名字要对应起来。