📄 atland.hpp
字号:
-1, // 11_RJaw3-1, // 12_RJaw2-1, // 13_RJaw1-1, // 14_RTemple7, // 15_ROuterEyeBrow-1, // 16_ROuterTopEyeBrow-1, // 17_RInnerTopEyeBrow6, // 18_RInnerEyeBrow-1, // 19_Point19-1, // 20_Point204, // 21_LOuterEyeBrow-1, // 22_LOuterTopEyeBrow-1, // 23_LInnerTopEyeBrow5, // 24_LInnerEyeBrow-1, // 25_Point25-1, // 26_Point269, // 27_LEyeOuter-1, // 28_LEyeTop10, // 29_LEyeInner-1, // 30_LEyeBottom0, // 31_LEye12, // 32_REyeOuter-1, // 33_REyeTop11, // 34_REyeInner-1, // 35_REyeBottom1, // 36_REye-1, // 37_LNoseTop-1, // 38_LNoseMid-1, // 39_LNoseBot0-1, // 40_LNoseBot1-1, // 41_Nosebase-1, // 42_RNoseBot1-1, // 43_RNoseBot0-1, // 44_MRNoseMid-1, // 45_RNoseTop15, // 46_LNostril16, // 47_RNostril2, // 48_LMouthCorner-1, // 49_Mouth49-1, // 50_Mouth5017, // 51_MouthTopOfTopLip-1, // 52_Mouth52-1, // 53_Mouth533, // 54_RMouthCorner-1, // 55_Mouth55-1, // 56_Mouth5618, // 57_MouthBotOfBotLip-1, // 58_Mouth58-1, // 59_Mouth59-1, // 60_Mouth60-1, // 61_Mouth61-1, // 62_Mouth62-1, // 63_Mouth63-1, // 64_Mouth64-1, // 65_Mouth65-1, // 66_MouthBotOfTopLip14, // 67_NoseTip-1, // 68_LEye0-1, // 69_LEye1-1, // 70_LEye2-1, // 71_LEye3-1, // 72_LEye4-1, // 73_LEye5-1, // 74_LEye6-1, // 75_LEye7-1, // 76_REye0-1, // 77_REye1-1, // 78_REye2-1, // 79_REye3-1, // 80_REye4-1, // 81_REye5-1, // 82_REye6-1, // 83_REye7-1, // 84_Point84-1, // 85_Point85-1, // 86_Point86-1, // 87_Point87-1, // 88_Point88-1, // 89_Point89-1, // 90_Point90-1, // 91_Point91-1, // 92_Point92-1, // 93_Point93-1, // 94_Point94-1, // 95_Point95-1, // 96_Point96-1, // 97_Point97-1, // 98_Point98-1, // 99_Point99};// AR// There are no corresponding internal landmarks for three AR points: left temple, right temple, left jaw, right jaw// We set these two points to "unused" (0,0). This leaves 18 points used of the total of 22.// We do it this way to keep the landmark numbers used internally the same for XM2VTS and BioId and AR// The upshot is that the AR table is identical to igTransBioid, so we use the BioId tablestatic const int igTransAr[CONF_nMaxLandmarks] ={-1, // 00_LTemple-1, // 01_LJaw1-1, // 02_LJaw220, // 03_LJaw3-1, // 04_LJaw4-1, // 05_LJaw5-1, // 06_LJaw619, // 07_TipOfChin-1, // 08_RJaw6-1, // 09_RJaw5-1, // 10_RJaw421, // 11_RJaw3-1, // 12_RJaw2-1, // 13_RJaw1-1, // 14_RTemple7, // 15_ROuterEyeBrow-1, // 16_ROuterTopEyeBrow-1, // 17_RInnerTopEyeBrow6, // 18_RInnerEyeBrow-1, // 19_Point19-1, // 20_Point204, // 21_LOuterEyeBrow-1, // 22_LOuterTopEyeBrow-1, // 23_LInnerTopEyeBrow5, // 24_LInnerEyeBrow-1, // 25_Point25-1, // 26_Point269, // 27_LEyeOuter-1, // 28_LEyeTop10, // 29_LEyeInner-1, // 30_LEyeBottom0, // 31_LEye12, // 32_REyeOuter-1, // 33_REyeTop11, // 34_REyeInner-1, // 35_REyeBottom1, // 36_REye-1, // 37_LNoseTop-1, // 38_LNoseMid-1, // 39_LNoseBot0-1, // 40_LNoseBot1-1, // 41_Nosebase-1, // 42_RNoseBot1-1, // 43_RNoseBot0-1, // 44_MRNoseMid-1, // 45_RNoseTop15, // 46_LNostril16, // 47_RNostril2, // 48_LMouthCorner-1, // 49_Mouth49-1, // 50_Mouth5017, // 51_MouthTopOfTopLip-1, // 52_Mouth52-1, // 53_Mouth533, // 54_RMouthCorner-1, // 55_Mouth55-1, // 56_Mouth5618, // 57_MouthBotOfBotLip-1, // 58_Mouth58-1, // 59_Mouth59-1, // 60_Mouth60-1, // 61_Mouth61-1, // 62_Mouth62-1, // 63_Mouth63-1, // 64_Mouth64-1, // 65_Mouth65-1, // 66_MouthBotOfTopLip14, // 67_NoseTip-1, // 68_LEye0-1, // 69_LEye1-1, // 70_LEye2-1, // 71_LEye3-1, // 72_LEye4-1, // 73_LEye5-1, // 74_LEye6-1, // 75_LEye7-1, // 76_REye0-1, // 77_REye1-1, // 78_REye2-1, // 79_REye3-1, // 80_REye4-1, // 81_REye5-1, // 82_REye6-1, // 83_REye7-1, // 84_MLNeckTop-1, // 85_MLNeckBottom-1, // 86_MRNeckTop-1, // 87_MRNeckBottom-1, // 88_Point88-1, // 89_Point89-1, // 90_Point90-1, // 91_Point91-1, // 92_Point92-1, // 93_Point93-1, // 94_Point94-1, // 95_Point95-1, // 96_Point96-1, // 97_Point97-1, // 98_Point98-1, // 99_Point99};//-----------------------------------------------------------------------------// Fenceposts, experimental#define CONF_nFencePosts 0 // can't put in masmconf.hpp because masmconf.hpp comes after atland.hpp#if CONF_nFencePostsstatic int igFromFencePosts[] = { 27, 28, 29, 32, 33, 34, };static int igToFencePosts[] = { 28, 29, 30, 33, 34, 35, };//static int igFromFencePosts[] = { 27, 28, 29 };//static int igToFencePosts[] = { 28, 29, 30 };#endif//-----------------------------------------------------------------------------// Submodelstypedef enum eSubModel{ SM_All, // all points, number of points determined by shape file SM_20, // the 20 BioId points, but with the XM2VTS numbering scheme SM_LEye, // left eye points only} eSubModel;static const int gSubModel20[] ={0, // 00_LTemple-1, // 01_LJaw1-1, // 02_LJaw2-1, // 03_LJaw3-1, // 04_LJaw4-1, // 05_LJaw5-1, // 06_LJaw67, // 07_TipOfChin-1, // 08_RJaw6-1, // 09_RJaw5-1, // 10_RJaw4-1, // 11_RJaw3-1, // 12_RJaw2-1, // 13_RJaw114, // 14_RTemple15, // 15_ROuterEyeBrow-1, // 16_ROuterTopEyeBrow-1, // 17_RInnerTopEyeBrow18, // 18_RInnerEyeBrow-1, // 19_Point19-1, // 20_Point2021, // 21_LOuterEyeBrow-1, // 22_LOuterTopEyeBrow-1, // 23_LInnerTopEyeBrow24, // 24_LInnerEyeBrow-1, // 25_Point25-1, // 26_Point2627, // 27_LEyeOuter-1, // 28_LEyeTop29, // 29_LEyeInner-1, // 30_LEyeBottom31, // 31_LEye32, // 32_REyeOuter-1, // 33_REyeTop34, // 34_REyeInner-1, // 35_REyeBottom36, // 36_REye-1, // 37_LNoseTop-1, // 38_LNoseMid-1, // 39_LNoseBot0-1, // 40_LNoseBot1-1, // 41_Nosebase-1, // 42_RNoseBot1-1, // 43_RNoseBot0-1, // 44_MRNoseMid-1, // 45_RNoseTop46, // 46_LNostril47, // 47_RNostril48, // 48_LMouthCorner-1, // 49_Mouth49-1, // 50_Mouth5051, // 51_MouthTopOfTopLip-1, // 52_Mouth52-1, // 53_Mouth5354, // 54_RMouthCorner-1, // 55_Mouth55-1, // 56_Mouth5657, // 57_MouthBotOfBotLip-1, // 58_Mouth58-1, // 59_Mouth59-1, // 60_Mouth60-1, // 61_Mouth61-1, // 62_Mouth62-1, // 63_Mouth63-1, // 64_Mouth64-1, // 65_Mouth65-1, // 66_MouthBotOfTopLip67, // 67_NoseTip-1, // 68_LEye0-1, // 69_LEye1-1, // 70_LEye2-1, // 71_LEye3-1, // 72_LEye4-1, // 73_LEye5-1, // 74_LEye6-1, // 75_LEye7-1, // 76_REye0-1, // 77_REye1-1, // 78_REye2-1, // 79_REye3-1, // 80_REye4-1, // 81_REye5-1, // 82_REye6-1, // 83_REye7-1, // 84_MLNeckTop-1, // 85_MLNeckBottom-1, // 86_MRNeckTop-1, // 87_MRNeckBottom-1, // 88_Point88-1, // 89_Point89-1, // 90_Point90-1, // 91_Point91-1, // 92_Point92-1, // 93_Point93-1, // 94_Point94-1, // 95_Point95-1, // 96_Point96-1, // 97_Point97-1, // 98_Point98-1, // 99_Point99};static const int gSubModelLEye[] ={-1, // 00_LTemple-1, // 01_LJaw1-1, // 02_LJaw2-1, // 03_LJaw3-1, // 04_LJaw4-1, // 05_LJaw5-1, // 06_LJaw6-1, // 07_TipOfChin-1, // 08_RJaw6-1, // 09_RJaw5-1, // 10_RJaw4-1, // 11_RJaw3-1, // 12_RJaw2-1, // 13_RJaw1-1, // 14_RTemple-1, // 15_ROuterEyeBrow-1, // 16_ROuterTopEyeBrow-1, // 17_RInnerTopEyeBrow-1, // 18_RInnerEyeBrow-1, // 19_Point19-1, // 20_Point20-1, // 21_LOuterEyeBrow-1, // 22_LOuterTopEyeBrow-1, // 23_LInnerTopEyeBrow-1, // 24_LInnerEyeBrow-1, // 25_Point25-1, // 26_Point2627, // 27_LEyeOuter28, // 28_LEyeTop29, // 29_LEyeInner30, // 30_LEyeBottom31, // 31_LEye-1, // 32_REyeOuter-1, // 33_REyeTop-1, // 34_REyeInner-1, // 35_REyeBottom-1, // 36_REye-1, // 37_LNoseTop-1, // 38_LNoseMid-1, // 39_LNoseBot0-1, // 40_LNoseBot1-1, // 41_Nosebase-1, // 42_RNoseBot1-1, // 43_RNoseBot0-1, // 44_MRNoseMid-1, // 45_RNoseTop-1, // 46_LNostril-1, // 47_RNostril-1, // 48_LMouthCorner-1, // 49_Mouth49-1, // 50_Mouth50-1, // 51_MouthTopOfTopLip-1, // 52_Mouth52-1, // 53_Mouth53-1, // 54_RMouthCorner-1, // 55_Mouth55-1, // 56_Mouth56-1, // 57_MouthBotOfBotLip-1, // 58_Mouth58-1, // 59_Mouth59-1, // 60_Mouth60-1, // 61_Mouth61-1, // 62_Mouth62-1, // 63_Mouth63-1, // 64_Mouth64-1, // 65_Mouth65-1, // 66_MouthBotOfTopLip-1, // 67_NoseTip-1, // 68_LEye0-1, // 69_LEye1-1, // 70_LEye2-1, // 71_LEye3-1, // 72_LEye4-1, // 73_LEye5-1, // 74_LEye6-1, // 75_LEye7-1, // 76_REye0-1, // 77_REye1-1, // 78_REye2-1, // 79_REye3-1, // 80_REye4-1, // 81_REye5-1, // 82_REye6-1, // 83_REye7-1, // 84_MLNeckTop-1, // 85_MLNeckBottom-1, // 86_MRNeckTop-1, // 87_MRNeckBottom-1, // 88_Point88-1, // 89_Point89-1, // 90_Point90-1, // 91_Point91-1, // 92_Point92-1, // 93_Point93-1, // 94_Point94-1, // 95_Point95-1, // 96_Point96-1, // 97_Point97-1, // 98_Point98-1, // 99_Point99};static const int *gSubModelTrans[] = // must be in same order as eSubModel{NULL, // SM_AllgSubModel20, // SM_20,gSubModelLEye, // SM_LEye,};static const char *sgSubModel[] = // sub model names{"", // SM_All"SM20", // SM_20,"LEye", // SM_LEye,};//-----------------------------------------------------------------------------// Externsconst tLand *pSelectLand(int nPoints); // inconst int iTranslatedPoint(int iPoint);bool fConvertShapeToInternalFormat(Mat &Shape, // io int nWantedPoints, eSubModel iSubModel=SM_All, // in int nSynthesizeREyePoints=0, // in StringVec *pTagStrings=NULL, int iShape=0); // in: TODO for debugging, can be removed#define AT_NO_DISCARD_UNDERSCORES 0 // values for fDiscardUnderscores#define AT_DISCARD_UNDERSCORES 1void DiscardGlobalFaceDetectorShapes(ShapeVec *pShapes, StringVec &TagStrings, // io bool fDiscardUnderscores); // invoid ConvertShapeFromInternalFormat(Mat &Shape, // out: file format const Mat &InShape, const char *sShape, int nWantedPoints); // in: internal formatint nUsedLandmarks(const Mat &Shape);void CheckHasAllLandmarks(const Mat &Shape);void ShowLandmarkTab(const Mat &Shape, const char sFname[], const char sImageDirs[]);void InitLandTabs(int nWantedPoints, int nPoints);#endif // atland_hpp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -