//using System;
|
//using System.Runtime.InteropServices;
|
//using OpenCvSharp;
|
|
//namespace FaceAI
|
//{
|
// /**
|
// * @brief 人脸表情属性枚举
|
// */
|
// enum BDFaceAttributeEmotionType
|
// {
|
// BDFACE_ATTRIBUTE_EMOTION_FROWN = 0, // 皱眉
|
// BDFACE_ATTRIBUTE_EMOTION_SMILE = 1, // 笑
|
// BDFACE_ATTRIBUTE_EMOTION_CALM = 2, // 平静
|
// };
|
|
// /**
|
// * @brief 人脸种族属性枚举
|
// */
|
// enum BDFaceRace
|
// {
|
// BDFACE_RACE_YELLOW = 0, // 黄种人
|
// BDFACE_RACE_WHITE = 1, // 白种人
|
// BDFACE_RACE_BLACK = 2, // 黑种人
|
// BDFACE_RACE_INDIAN = 3, // 印第安人
|
// };
|
|
// /**
|
// * @brief 眼镜状态属性枚举
|
// */
|
// enum BDFaceGlasses
|
// {
|
// BDFACE_NO_GLASSES = 0, // 无眼镜
|
// BDFACE_GLASSES = 1, // 有眼镜
|
// BDFACE_SUN_GLASSES = 2, // 墨镜
|
// };
|
|
// /**
|
// * @brief 性别属性枚举
|
// */
|
// enum BDFaceGender
|
// {
|
// BDFACE_GENDER_FEMAILE = 0, // 女性
|
// BDFACE_GENDER_MALE = 1, // 男性
|
// };
|
|
|
// /**
|
// * @brief 人脸属性结构体
|
// */
|
// [StructLayout(LayoutKind.Sequential, Pack = 1)]
|
// struct BDFaceAttribute
|
// {
|
// public int age; // 年龄
|
// public BDFaceRace race; // 种族
|
// public BDFaceAttributeEmotionType emotion; // 表情
|
// public BDFaceGlasses glasses; // 戴眼镜状态
|
// public BDFaceGender gender; // 性别
|
// };
|
|
// // 人脸属性示例及接口
|
// class FaceAttr
|
// {
|
// // 获取人脸属性
|
// [DllImport("BaiduFaceApi.dll", EntryPoint = "face_attr", CharSet = CharSet.Ansi
|
// , CallingConvention = CallingConvention.Cdecl)]
|
// public static extern int face_attr(IntPtr ptr, IntPtr mat);
|
|
// // 测试获取人脸属性
|
// public void test_get_face_attr()
|
// {
|
// int max_face_num = 5; // 设置最多检测跟踪人数(多人脸检测),默认为1,最多可设为50
|
|
// BDFaceAttribute[] attr_info = new BDFaceAttribute[max_face_num];
|
// int size = Marshal.SizeOf(typeof(BDFaceAttribute));
|
// IntPtr ptT = Marshal.AllocHGlobal(size * max_face_num);
|
// string img_path = "../images/rgb.png";
|
// Mat mat = Cv2.ImRead(img_path);
|
// int faceNum = face_attr(ptT, mat.CvPtr);
|
// Console.WriteLine("faceNum is:" + faceNum);
|
// for (int index = 0; index < faceNum; index++)
|
// {
|
// IntPtr ptr = new IntPtr();
|
// if (8 == IntPtr.Size)
|
// {
|
// ptr = (IntPtr)(ptT.ToInt64() + size * index);
|
// }
|
// else if (4 == IntPtr.Size)
|
// {
|
// ptr = (IntPtr)(ptT.ToInt32() + size * index);
|
// }
|
|
// attr_info[index] = (BDFaceAttribute)Marshal.PtrToStructure(ptr, typeof(BDFaceAttribute));
|
// // 年龄
|
// Console.WriteLine("age is {0}:", attr_info[index].age);
|
// // 种族
|
// Console.WriteLine("race is:{0}", attr_info[index].race);
|
// // 表情
|
// Console.WriteLine("emotion is:{0}", attr_info[index].emotion);
|
// // 戴眼镜状态
|
// Console.WriteLine("glasses is:{0}", attr_info[index].glasses);
|
// // 性别
|
// Console.WriteLine("gender is:{0}", attr_info[index].gender);
|
// }
|
// Marshal.FreeHGlobal(ptT);
|
// }
|
|
// }
|
//}
|