예제 #1
0
        /// <summary>
        /// 提取人脸特征码。
        /// </summary>
        /// <param name="bitmap">图片</param>
        /// <param name="alignmentResult">要提取特征码的人脸的对齐结果</param>
        /// <param name="feat">特征码</param>
        /// <returns></returns>
        public static bool ExtractFeature(Bitmap bitmap, ref AlignmentResult alignmentResult, float[] feat)
        {
            Bitmap bmp = BitmapTo24Rgb(bitmap); //将图像转换为24位rgb图像

            bmp.SetResolution(96, 96);          //设置dpi=96
            byte[] imageByte = BitmapToByteBuffer(bmp, out int width, out int height, out int stride);
            return(SDK.ExtracFeatureByte(imageByte, width, height, stride, ref alignmentResult, feat));
        }
예제 #2
0
        /// <summary>
        /// 人脸对齐,返回识别到的人脸数量。
        /// </summary>
        /// <param name="path">图片的路径</param>
        /// <param name="faces">人脸对齐的结果</param>
        /// <returns></returns>
        public static int Alignment(string path, ref AlignmentResult[] faces)
        {
            StringBuilder json      = new StringBuilder(1500);
            int           faceCount = SDK.Alignment(path, json);

            if (faceCount > 0)
            {
                JsonSerializer serializer = new JsonSerializer();
                faces = serializer.Deserialize <AlignmentResult[]>(new JsonTextReader(new StringReader(json.ToString())));
                return(faceCount);
            }
            else
            {
                faces = new AlignmentResult[0];
                return(faceCount);
            }
        }
예제 #3
0
        /// <summary>
        /// 人脸对齐,返回识别到的人脸数量。
        /// </summary>
        /// <param name="bitmap">图片</param>
        /// <param name="faces">人脸对齐的结果</param>
        /// <returns></returns>
        public static int Alignment(Bitmap bitmap, ref AlignmentResult[] faces)
        {
            Bitmap bmp = BitmapTo24Rgb(bitmap); //将图像转换为24位rgb图像

            bmp.SetResolution(96, 96);          //设置dpi=96
            byte[]        imageByte = BitmapToByteBuffer(bmp, out int width, out int height, out int stride);
            StringBuilder json      = new StringBuilder(1500);
            int           faceCount = SDK.AlignmentByte(imageByte, width, height, stride, json);

            if (faceCount > 0)
            {
                JsonSerializer serializer = new JsonSerializer();
                faces = serializer.Deserialize <AlignmentResult[]>(new JsonTextReader(new StringReader(json.ToString())));
                return(faceCount);
            }
            else
            {
                faces = new AlignmentResult[0];
                return(faceCount);
            }
        }
예제 #4
0
 public extern static bool ExtracFeatureByte(byte[] imageByte, int width, int height, int stride, ref AlignmentResult alignmentResult, float[] feat);
예제 #5
0
 public extern static bool ExtractFeature(string picPath, ref AlignmentResult alignmentResult, float[] feat);
예제 #6
0
 /// <summary>
 /// 提取人脸特征码。
 /// </summary>
 /// <param name="path">图片路径</param>
 /// <param name="alignmentResult">要提取特征码的人脸的对齐结果</param>
 /// <param name="feat">特征码</param>
 /// <returns></returns>
 public static bool ExtractFeature(string path, ref AlignmentResult alignmentResult, float[] feat)
 {
     return(SDK.ExtractFeature(path, ref alignmentResult, feat));
 }