資源簡介
可用于測試intraFace的運行效果,不是源代碼。效果非常好
代碼片段和文件信息
//?Author:?Philipp?Werner?
//?This?code?is?part?of?IntraFace.
#include?
#include?
#include?
//?Define?fixed?width?types
#if?_MSC_VER?1600
typedef?unsigned?__int8?uint8_t;
typedef?unsigned?__int16?uint16_t;
typedef?unsigned?__int32?uint32_t;
typedef?unsigned?__int64?uint64_t;
typedef?__int8?int8_t;
typedef?__int16?int16_t;
typedef?__int32?int32_t;
typedef?__int64?int64_t;
#else
#include?
#endif
//?Check?whether?we?have?a?big?endian?architecture
inline?bool?is_bigendian()
{
const?int?i?=?1;
return?(*(char*)&i)?==?0;
}
//?TODO:?To?speed?up?loading?in?big?endian?architectures?we?may?overload?the?function?to?use?optimized?platform?specific?conversion?functions
template?
T?swap_endian(T?u)
{
????union
????{
????????T?u;
????????unsigned?char?u8[sizeof(T)];
????}?source?dest;
????source.u?=?u;
????for?(size_t?k?=?0;?k?????????dest.u8[k]?=?source.u8[sizeof(T)?-?k?-?1];
????return?dest.u;
}
//?Write?array?of?n?elements?to?file
template?
bool?write_n(FILE?*?file?const?T?*?data?size_t?n)
{
if?(is_bigendian())?{
//?This?is?not?optimized?for?speed?however?it‘s?only?big?endian?writing....
bool?okay?=?true;
for?(size_t?i?=?0;?i? T?swapped?=?swap_endian(data[i]);
okay?&=?fwrite(&swapped?sizeof(swapped)?1?file)?==?1;
}
return?okay;
}?else?{
return?fwrite(data?sizeof(*data)?n?file)?==?n;
}
}
//?Read?array?of?n?elements?from?file
template?
bool?read_n(FILE?*?file?T?*?data?size_t?n)
{
if?(fread(data?sizeof(*data)?n?file)?!=?n)
return?false;
if?(is_bigendian())?{
for?(size_t?i?=?0;?i? data[i]?=?swap_endian(data[i]);
}
return?true;
}
//?Write?one?element?to?file
template?
bool?write_one(FILE?*?file?T?data)
{
return?write_n(file?&data?1);
}
//?Read?one?element?from?file
template?
bool?read_one(FILE?*?file?T?&?data)
{
return?read_n(file?&data?1);
}
//?Write?one?cv::Mat?to?file
bool?write_one(FILE?*?file?const?cv::Mat?&?data)
{
bool?okay?=?true;
okay?&=?write_one(file?int32_t(data.rows));
okay?&=?write_one(file?int32_t(data.cols));
okay?&=?write_one(file?uint32_t(data.type()));
//?If?matrix?memory?is?continuous?we?can?reshape?the?matrix
int?rows?=?data.rows?cols?=?data.cols;
if?(data.isContinuous())?{
cols?=?rows*cols;
rows?=?1;
}
//?Currently?only?supports?float/double?matrices!
assert(data.depth()?==?CV_32F?||?data.depth()?==?CV_64F);
if?(data.depth()?==?CV_32F)
for?(int?r?=?0;?r? okay?&=?write_n(file?data.ptr(r)?cols);
else?if?(data.depth()?==?CV_64F)
for?(int?r?=?0;?r? okay?&=?write_n(file?data.ptr(r)?cols);
else
return?false;
return?okay;
}
//?Read?one?cv::Mat?from?file
bool?read_one(FILE?*?file?cv::Mat?&?data)
{
bool
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????41910??2014-11-15?15:22??IntraFace-v1.2\data\513710585_O.jpg
?????文件?????280666??2013-10-16?01:56??IntraFace-v1.2\data\good_input_rect.jpg
?????文件?????193426??2013-05-09?13:00??IntraFace-v1.2\data\pic.jpg
?????文件????2701506??2013-04-02?02:28??IntraFace-v1.2\data\vid.wmv
?????文件????????495??2013-11-09?08:02??IntraFace-v1.2\include\intraface\binary_model_file.h
?????文件???????3674??2014-01-25?04:36??IntraFace-v1.2\include\intraface\FaceAlignment.h
?????文件????????920??2014-01-24?00:49??IntraFace-v1.2\include\intraface\Marcos.h
?????文件???????1161??2013-10-20?12:15??IntraFace-v1.2\include\intraface\XXDesc
?????文件???????3439??2013-03-30?06:55??IntraFace-v1.2\include\opencv\cv.h
?????文件???????2411??2013-01-28?07:17??IntraFace-v1.2\include\opencv\cv.hpp
?????文件???????2850??2013-03-30?06:55??IntraFace-v1.2\include\opencv\cvaux.h
?????文件???????2346??2013-01-28?07:17??IntraFace-v1.2\include\opencv\cvaux.hpp
?????文件???????2184??2013-01-28?07:17??IntraFace-v1.2\include\opencv\cvwimage.h
?????文件???????2465??2013-03-30?06:55??IntraFace-v1.2\include\opencv\cxcore.h
?????文件???????2423??2013-01-28?07:17??IntraFace-v1.2\include\opencv\cxcore.hpp
?????文件???????2266??2013-01-28?07:17??IntraFace-v1.2\include\opencv\cxeigen.hpp
?????文件????????110??2013-01-28?07:17??IntraFace-v1.2\include\opencv\cxmisc.h
?????文件???????2306??2013-03-30?06:55??IntraFace-v1.2\include\opencv\highgui.h
?????文件???????2189??2013-03-30?06:55??IntraFace-v1.2\include\opencv\ml.h
?????文件??????37635??2013-06-27?06:55??IntraFace-v1.2\include\opencv2\calib3d\calib3d.hpp
?????文件??????38472??2013-04-03?06:56??IntraFace-v1.2\include\opencv2\contrib\contrib.hpp
?????文件???????3042??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\contrib\detection_ba
?????文件???????7099??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\contrib\hybridtracker.hpp
?????文件??????12807??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\contrib\openfabmap.hpp
?????文件??????23959??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\contrib\retina.hpp
?????文件?????186172??2013-06-27?06:55??IntraFace-v1.2\include\opencv2\core\core.hpp
?????文件??????78488??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\core\core_c.h
?????文件???????7854??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\core\cuda_devptrs.hpp
?????文件???????2198??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\core\devmem2d.hpp
?????文件???????9465??2013-03-30?06:55??IntraFace-v1.2\include\opencv2\core\eigen.hpp
............此處省略312個文件信息
評論
共有 條評論