歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ununtu下在Matlab中讀寫OpenEXR格式的圖片

Ununtu下在Matlab中讀寫OpenEXR格式的圖片

日期:2017/2/28 15:42:58   编辑:Linux教程

由於最近有需求對OpenEXR格式的圖片進行處理,而Matlab本身並不支持OpenEXR格式的圖片讀寫。發現在網上有一個插件,使用該插件可以在Matlab中直接使用exrread/exrwrite對OpenEXR格式的圖片進行處理:

網址為:http://www.mit.edu/~kimo/software/Matlabexr/

1)在Ubuntu下安裝Matlab

http://www.linuxidc.com/Linux/2012-08/68051.htm

2)在Ubuntu下安裝編譯IlmBase,Zlib,OpenEXR

http://www.linuxidc.com/Linux/2012-08/68050.htm

3)解壓MatlabEXR.zip

sudo unzip MatlabEXR.zip -d /usr/local/

更改目錄權限:sudo chmod777 -R /usr/local/MatlabEXR

4)Matlab中編譯MatlabEXR.zip

打開Matlab,將當前目錄更改為:/usr/local/MatlabEXR

在Matlab命令窗口輸入以下命令:

mex exrread.cpp -lIlmImf -lHalf -I/usr/local/include/OpenEXR-L/usr/local/lib

mex exrwrite.cpp -lIlmImf -lHalf-I/usr/local/include/OpenEXR -L/usr/local/lib

mex exrinfo.cpp -lIlmImf -lHalf -I/usr/local/include/OpenEXR-L/usr/local/lib

遇到問題及解決方案:

1)Invalid MEX-file '/usr/local/MatlabEXR/exrread.mexglx': libIlmImf.so.6: cannot open shared object file: No such file ordirectory

解決方法:

方法1:設置LD_LIBRARY_PATH。

終端輸入命令vi /etc/ld.so.conf,添加/usr/local/lib,然後在終端輸入命令ldconfig -v

方法2:終端輸入命令export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

2)Invalid MEX-file '/usr/local/MatlabEXR/exrread.mexglx':/usr/local/MATLAB/R2012a/bin/glnx86/libstdc++.so.6:version `GLIBCXX_3.4.15' not found (required by/usr/local/lib/libIlmThread.so.6)

解決方法:

cd /usr/local/MATLAB/R2012a/bin/glnx86/

sudo mv libstdc++.so.6 libstdc++_mybackup

sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 libstdc++.so.6

命令 strings /usr/lib/libstdc++.so.6 | grepGLIBC可以查看相應的GLIBCXX版本

Copyright © Linux教程網 All Rights Reserved