資源簡介
EXR格式圖片Matlab讀寫插件
通過該插件,可以在Matlab中完成對OpenEXR格式圖片的讀寫操作。

代碼片段和文件信息
/*
?*?MATLAB?MEX?function?for?displaying?channel?types?of?an?EXR?image.
?*?
?*/
#include?
#include?“ImfRgbaFile.h“
#include?“ImfStringAttribute.h“
#include?“ImfMatrixAttribute.h“
#include?“ImfChannelList.h“
#include?“ImfPixelType.h“
#include?“Iex.h“
#include?“mex.h“?
using?namespace?Imf;
using?namespace?Imath;
using?namespace?Iex;
using?std::cout;
using?std::endl;
using?std::flush;
/*
?*?Check?inputs:
?*?only?one?input?argument?that?is?a?string?(row?vector?of?chars)
?*?one?or?two?output?arguments
?*?
?*?These?checks?were?copied?from?the?MATLAB?example?file?revord.c
?*/
void?checkInputs(int?nlhs?mxArray?*plhs[]?int?nrhs?const?mxArray?*prhs[])?{
if?(nrhs?!=?1)
mexErrMsgTxt(“Incorrect?number?of?input?arguments“);
if?(nlhs?>?1)
mexErrMsgTxt(“Incorrect?number?of?output?arguments“);
if?(mxIsChar(prhs[0])?!=?1)
mexErrMsgTxt(“Input?must?be?a?string“);
if?(mxGetM(prhs[0])?!=?1)
mexErrMsgTxt(“Input?must?be?a?row?vector.“);
return;
}
/*
?*?Read?the?header?of?an?EXR?file.
?*?Code?follows?examples?from?ReadingAndWritingImageFiles.pdf?found
?*?here:
?*?http://www.openexr.com/ReadingAndWritingImageFiles.pdf
?*/
void?mexFunction(int?nlhs?mxArray?*plhs[]?int?nrhs?const?mxArray?*prhs[])?{?
checkInputs(nlhs?plhs?nrhs?prhs);
char?*filename?=?mxArrayToString(prhs[0]);
try?{
RgbaInputFile?file(filename);
const?ChannelList?&ch?=?file.header().channels();
int?ix?=?1;
for?(ChannelList::ConstIterator?i?=?ch.begin();?i?!=?ch.end();?++i)?{
const?Channel?&channel?=?i.channel();?
PixelType?type?=?channel.type;
const?char*?t?=?(type?==?UINT)???“uint“?:?
((type?==?HALF)???“half“?:?“float“);
cout?<“channel?“?< cout?< }
const?StringAttribute?*comments?=
file.header().findTypedAttribute??(“comments“);
const?M44fAttribute?*cameraTransform?=?
file.header().findTypedAttribute??(“cameraTransform“);
if?(comments)
cout?<“comments\n???“?<value()?<
if?(cameraTransform)
cout?<“cameraTransform\n“?<value()?<
}?catch?(const?std::exception?&exc)?{
mexErrMsgTxt(exc.what());
}
//?Free?the?memory?for?the?string
mxFree(filename);
return;
}?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2009-05-21?17:37??MatlabEXR\
?????文件????????2254??2009-05-21?17:23??MatlabEXR\exrinfo.cpp
?????目錄???????????0??2009-05-21?17:37??__MACOSX\
?????目錄???????????0??2009-05-21?17:37??__MACOSX\MatlabEXR\
?????文件??????????82??2009-05-21?17:23??__MACOSX\MatlabEXR\._exrinfo.cpp
?????文件?????????341??2008-03-11?09:26??MatlabEXR\exrinfo.m
?????文件????????3734??2009-05-21?17:23??MatlabEXR\exrread.cpp
?????文件??????????82??2009-05-21?17:23??__MACOSX\MatlabEXR\._exrread.cpp
?????文件?????????405??2008-03-11?11:08??MatlabEXR\exrread.m
?????文件????????3572??2009-05-21?17:23??MatlabEXR\exrwrite.cpp
?????文件??????????82??2009-05-21?17:23??__MACOSX\MatlabEXR\._exrwrite.cpp
?????文件?????????414??2008-03-11?09:38??MatlabEXR\exrwrite.m
?????文件????????1283??2009-05-21?17:26??MatlabEXR\README.txt
?????文件??????????82??2009-05-21?17:26??__MACOSX\MatlabEXR\._README.txt
- 上一篇:matlab批量摳圖
- 下一篇:matlab串口實時顯示波形。
評論
共有 條評論