/// <summary> /// Extract a minutia list from the specified bitmap image. /// </summary> /// <param name="image">The source bitmap image to extract features from.</param> /// <returns>The features extracted from the specified bitmap image.</returns> public override List <Minutia> ExtractFeatures(Bitmap image) { Ratha1995OrImgExtractor orImgExtractor = new Ratha1995OrImgExtractor(); OrientationImage orientationImage = orImgExtractor.ExtractFeatures(image); ImageMatrix matrix = skeImgExtractor.ExtractSkeletonImage(image, orientationImage); return(GetMinutiaes(matrix, orientationImage)); }
/// <summary> /// Extract a skeleton image from the specified bitmap image. /// </summary> /// <param name="image">The source bitmap image to extract features from.</param> /// <returns>The features extracted from the specified bitmap image.</returns> public override SkeletonImage ExtractFeatures(Bitmap image) { Ratha1995OrImgExtractor ratha1995OrImgExtractor = new Ratha1995OrImgExtractor(); OrientationImage orientationImage = ratha1995OrImgExtractor.ExtractFeatures(image); ImageMatrix skeletonImage = ExtractSkeletonImage(image, orientationImage); byte[] img = new byte[skeletonImage.Width * skeletonImage.Height]; for (int i = 0; i < skeletonImage.Height; i++) { for (int j = 0; j < skeletonImage.Width; j++) { img[skeletonImage.Width * i + j] = (byte)skeletonImage[i, j]; } } return(new SkeletonImage(img, skeletonImage.Width, skeletonImage.Height)); }