在Matlab安装openexr

36视图(30天)
伊姆兰Kanjoo
伊姆兰Kanjoo 2020年10月12日
我试图安装OpenExr读.exr文件但是我得到一些不理解的错误。我有下载的脚本 链接。在指令文件中,已经提到正确的路径。
下载的文件位置
D: \ D \ \ HDR \ softwre \ openexr ZJU数据
D: \ D \ ZJU数据\ HDR \ softwre \ openexr \ IlmImf
D: \ D \ \ HDR \ softwre ZJU数据\ openexr \一半
D: \ D \ ZJU数据\ HDR \ softwre \ openexr \ Iex
D: \ D \ ZJU数据\ HDR \ softwre \ openexr \ IlmThread
D: \ D \ ZJU数据\ HDR \ softwre \ openexr \ Imath
让。m文件修改的路径下面的文件
clc;
verbose = false;
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
build_files = {“exrinfo.cpp”,
“exrread.cpp”,
“exrreadchannels.cpp”,
“exrwrite.cpp”,
“exrwritechannels.cpp”};
companion_files = {“utilities.cpp”,
“ImfToMatlab.cpp”,
“MatlabToImf.cpp”};
附加= {};
如果(详细= = true)
附加=[额外,{“v”});
结束
n = 1:尺寸(build_files, 2)
如果(详细= = true)
clc;
结束
文件= cell2mat (build_files (n));
disp ([“建筑”、文件);
墨西哥人(文件,companion_files {:},
' D - D: \ \ \ HDR \ softwre \ openexr \ openexr ZJU数据”,
' D - D: \ \ \ HDR \ softwre \ ZJU数据openexr \ ',
“-IlmImf”,
“-Iex”,
“-Imath”,
“-IHalf”,
“-IlmThread”,
“-largeArrayDims”,
额外的{:});
结束
清晰;
disp (“完成了Matlab构建OpenEXR”);
但我得到foloowing错误
错误使用墨西哥人
g++:错误:文件\ MATLAB \ R2018b /走读生包括":\计划:无效的论点
g++:错误:文件\ MATLAB \ R2018b /模型/包万博1manbetx括-fexceptions -fno-omit-frame-pointer化c++ 11 - 02 -fwrapv -DNDEBUG D: \ D \ ZJU:无效的论点
g++:错误:数据\ HDR \ softwre \ openexr \ exrinfo。cpp - o C:\Users\ IMRANK ~ 1 \ AppData \本地\ Temp \ mex_230748490719102_4660 \ exrinfo。obj:无效的论点
g++:致命错误:不输入文件
编译终止。
我用MinGW64编译器。
你能告诉我究竟出了什么错误呢?
1评论
Zaixi商
Zaixi商 2020年10月20日
我做同样的事情,得到了类似的问题。这篇家喻户晓的代码不再维护项目……

登录置评。

答案(2)

索非亚Minano
索非亚Minano 2021年3月20日
我认为你可能搞错了- d国旗的墨西哥人命令和- I - l标志。从 文档 :“- d选项定义C预处理器定义”。我旗指向“包括”目录,并使用了- l和- l标志指向相关的库。
是很有用的,这是我用来编译的步骤OpenEXR从网站引用绑定。我使用Windows 10机和蟒蛇包很好的管理。
1。从蟒蛇得到OpenEXR c++库 在这里 。对我来说,节省了包:C:\Users\Sofi\Anaconda3\pkgs\ openexr-2.5.5-hab3b255_0
2。得到IlmBase蟒蛇 在这里 。保存:C:\Users\Sofi\Anaconda3\pkgs\ ilmbase-2.5.5-h12d4b20_0
3所示。MATLAB从得到OpenEXR绑定 在这里
4所示。修改。MATLAB的m脚本绑定指向正确的目录。尤其需要指出:
——包括OpenEXR图书馆和IlmBase
——库IlmImf父文件夹,Iex Imath,一半,IlmThread。我输入这些路径- l < libraryfolder > - l < libraryname > (MATLAB扩展到lib)
——在这之后,我得到一个错误LNK2019当运行。m脚本。要修复它需要:
——添加一个处理器定义OPENEXR_DLL,墨西哥人的- d信号
——删除一个处理器定义HALF_EXPORT, - u标志
这是最后的墨西哥人的输入函数看起来对我来说:
墨西哥人(文件,companion_files {:},
“-DOPENEXR_DLL”,“-UHALF_EXPORT”,%修复_toFloat链接问题,_eLut链接问题
":《世界粮食不安全状况》报告\ Anaconda3 \包裹\ \用户\ openexr-2.5.5-hab3b255_0 \图书馆\包括\ OpenEXR”,OpenEXR包括
":《世界粮食不安全状况》报告\ Anaconda3 \包裹\ \用户\ ilmbase-2.5.5-h12d4b20_0 \图书馆\包括\ OpenEXR”,Ilmbase包括
lc:《世界粮食不安全状况》报告\ Anaconda3 \ \用户\包裹\ openexr-2.5.5-hab3b255_0 \图书馆\ lib \ ',“-lIlmImf”,% IlmImf.lib之路
lc:《世界粮食不安全状况》报告\ Anaconda3 \ \用户\包裹\ ilmbase-2.5.5-h12d4b20_0 \图书馆\ lib \ ',“-lIex”,% Iex.lib之路
lc:《世界粮食不安全状况》报告\ Anaconda3 \ \用户\包裹\ ilmbase-2.5.5-h12d4b20_0 \图书馆\ lib”,“-lImath”,% Imath.lib之路
lc:《世界粮食不安全状况》报告\ Anaconda3 \ \用户\包裹\ ilmbase-2.5.5-h12d4b20_0 \图书馆\ lib”,“-lHalf”,% Half.lib之路
lc:《世界粮食不安全状况》报告\ Anaconda3 \ \用户\包裹\ ilmbase-2.5.5-h12d4b20_0 \图书馆\ lib”,“-lIlmThread”,% IlmThread.lib之路
“-largeArrayDims”,
额外的{:});
编译绑定后,我有一个依赖错误当试图使用exr功能:“无效MEX-file mexfilename:找不到指定的模块。“我跟着文档修复它 在这里 。在我的例子中,我需要添加到系统路径包含从OpenEXR . dll文件的目录,IlmBase和Zlib(我也有 从蟒蛇 )。你也可以将这些目录添加到当前会话使用Matlab系统路径setenv命令。我的情况:
setenv (“路径”,采用“路径”)
" C: \ \用户索菲\ Anaconda3 \包裹\ openexr-2.5.5-hab3b255_0 \图书馆\ bin '
" C: \ \用户索菲\ Anaconda3 \包裹\ ilmbase-2.5.5-h12d4b20_0 \图书馆\ bin '
" C: \ \用户索菲\ Anaconda3 \包裹\ zlib-1.2.11-h62dcd97_4 \图书馆\ bin ']);
或者,您可以将所需的. dll文件复制到墨西哥人文件在相同的文件夹中。
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年9月23日
楼主有问题是因为空间目录名称。

登录置评。


Dinesh艾耶
Dinesh艾耶 2022年9月23日
如果你还想读EXR文件在MATLAB的图像处理工具箱增加了EXR R2022b的阅读和写作能力。可用的函数有:
  • exrread
  • exrinfo
  • exrwrite
  • isexr
  • exrHalfAsSingle
希望这个有帮助。

类别

找到更多的在搜索路径帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!