Maison développement back-end Tutoriel C#.Net Explication détaillée du code graphique et textuel pour réaliser la fonction de reconnaissance de carte d'identité en C#

Explication détaillée du code graphique et textuel pour réaliser la fonction de reconnaissance de carte d'identité en C#

Jul 17, 2017 am 11:02 AM
.net 身份证

Cet article présente principalement l'explication détaillée des technologies liées à la reconnaissance de carte d'identité C#, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à

Recherches récentes sur la technologie OCR liée à C#, la reconnaissance d'image est généralement C Par rapport à. langages de bas niveau tels que C++, C# s'appuie principalement sur certains composants encapsulés pour effectuer des appels. Voici une méthode de reconnaissance de carte d'identité.

Configuration de l'environnement

Adresse de téléchargement : site officiel d'EmguCV

Téléchargez cet EXE dans la catégorie Fichier et continuez Installer . Après l'installation, vous pourrez retrouver les composants correspondants dans le répertoire, ainsi que quelques cas d'application.

La dll dans le dossier dll est référencée au projet C# x64, x86 et tessdata correspondent à la bibliothèque de classes et à la bibliothèque de langues reconnues par OCR. vers tessdata. Les trois dossiers sont placés dans le dossier d'exécution du programme.

Démo

La petite démo que j'ai faite est la suivante : la carte d'identité l'image a été téléchargée depuis Baidu

Je dois dire que le seul inconvénient de cette bibliothèque est que le taux de reconnaissance de texte est trop faible et que l'effet de reconnaissance d'image n'est pas très bon

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.OCR;
using Emgu.CV.Structure;
using System.IO;

namespace EmguCV
{
 public partial class Form1 : Form
 {
  Image<Gray, Byte> imageThreshold;
  public Form1()
  {
   InitializeComponent();
   pictureBox1.Enabled = false;
  }

  private void Form1_Load(object sender, EventArgs e)
  {



  }

  private void button1_Click(object sender, EventArgs e)
  {
   //第一个参数是语言包文件夹的地址,不写默认在执行文件夹下
   Tesseract _ocr = new Tesseract(@"", "chi_sim", OcrEngineMode.TesseractOnly);
   _ocr.SetImage(imageThreshold);
   _ocr.Recognize();
   String text = _ocr.GetUTF8Text();
   this.textBox1.Text = text;
  }

  private void pictureBox2_Click(object sender, EventArgs e)
  {
   OpenFileDialog of = new OpenFileDialog();
   of.Title = "请选择图片";
   if (of.ShowDialog() == DialogResult.OK)
   {
    string file = of.FileName;
    Image img = Image.FromFile(file);
    pictureBox1.Image = img;
   }
   Bitmap bitmap = (Bitmap)this.pictureBox1.Image;
   Image<Bgr, Byte> imageSource = new Image<Bgr, byte>(bitmap);
   Image<Gray, Byte> imageGrayscale = imageSource.Convert<Gray, Byte>();
   imageGrayscale = randon(imageGrayscale);
   imageThreshold = imageGrayscale.ThresholdBinary(new Gray(100), new Gray(255));
   this.pictureBox2.Image = imageThreshold.ToBitmap();
  }
  /// <summary>
  /// 旋转校正
  /// </summary>
  /// <param name="imageInput"></param>
  /// <returns></returns>
  private Image<Gray, Byte> randon(Image<Gray, Byte> imageInput)//图像投影旋转法倾斜校正子函数定义
  {
   int nwidth = imageInput.Width;
   int nheight = imageInput.Height;
   int sum;
   int SumOfCha;
   int SumOfChatemp = 0;
   int[] sumhang = new int[nheight];
   Image<Gray, Byte> resultImage = imageInput;
   Image<Gray, Byte> ImrotaImage;
   //20度范围内的调整
   for (int ang = -20; ang < 20; ang = ang + 1)
   {
    ImrotaImage = imageInput.Rotate(ang, new Gray(1));
    for (int i = 0; i < nheight; i++)
    {
     sum = 0;
     for (int j = 0; j < nwidth; j++)
     {
      sum += ImrotaImage.Data[i, j, 0];
     }
     sumhang[i] = sum;
    }
    SumOfCha = 0;
    for (int k = 0; k < nheight - 1; k++)
    {
     SumOfCha = SumOfCha + (Math.Abs(sumhang[k] - sumhang[k + 1]));
    }
    if (SumOfCha > SumOfChatemp)
    {
     resultImage = ImrotaImage;
     SumOfChatemp = SumOfCha;
    }
   }
   return resultImage;
  }

  private void pictureBox1_Click(object sender, EventArgs e)
  {

  }
 }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Une carte d'identité peut ouvrir plusieurs magasins Taobao Une carte d'identité peut ouvrir plusieurs magasins Taobao Oct 10, 2023 pm 01:51 PM

Une carte d'identité ne peut ouvrir qu'un seul magasin Taobao. Les vendeurs doivent respecter les réglementations de la plateforme Taobao et ne pas essayer d'utiliser les cartes d'identité d'autres personnes pour ouvrir plusieurs magasins. Les vendeurs peuvent développer leur activité et augmenter leurs ventes en fusionnant des magasins et en ouvrant des succursales. Il convient toutefois de noter que chaque succursale doit utiliser une carte d'identité indépendante pour l'authentification par nom réel.

Quelles sont les perspectives d'emploi du C# ? Quelles sont les perspectives d'emploi du C# ? Oct 19, 2023 am 11:02 AM

Que vous soyez débutant ou professionnel expérimenté, la maîtrise du C# ouvrira la voie à votre carrière.

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM May 06, 2024 pm 04:43 PM

Le développement des technologies d’intelligence artificielle (IA) bat son plein aujourd’hui et elles ont montré un grand potentiel et une grande influence dans divers domaines. Aujourd'hui, Dayao partagera avec vous 4 cadres de projets liés au modèle d'IA open source .NET LLM, dans l'espoir de vous fournir une référence. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel est un kit de développement logiciel (SDK) open source conçu pour intégrer de grands modèles de langage (LLM) tels qu'OpenAI, Azure

Différences de performances entre le framework Java et le framework .NET Différences de performances entre le framework Java et le framework .NET Jun 03, 2024 am 09:19 AM

En termes de traitement des requêtes à haute concurrence, .NETASP.NETCoreWebAPI fonctionne mieux que JavaSpringMVC. Les raisons incluent : la compilation précoce AOT, qui réduit le temps de démarrage, une gestion plus raffinée de la mémoire, où les développeurs sont responsables de l'allocation et de la libération de la mémoire des objets.

Le téléphone portable et la carte d'identité seront-ils démagnétisés ensemble ? Le téléphone portable et la carte d'identité seront-ils démagnétisés ensemble ? Aug 14, 2023 pm 02:33 PM

Les téléphones portables et les cartes d'identité ne seront pas démagnétisés ensemble. Les raisons sont les suivantes : 1. Des bobines et des puces sont intégrées à l'intérieur de la carte d'identité. Contrairement aux bandes, disques durs et autres supports de stockage traditionnels, il n'y a pas de substances magnétisées. des téléphones mobiles est à haute fréquence. Les ondes électromagnétiques, avec des fréquences allant de centaines de milliers à des dizaines de millions de Hertz, n'ont pas la capacité de magnétiser les cartes d'identité. Les aimants des haut-parleurs du téléphone portable n'auront pas d'effet démagnétisant sur la carte d'identité. Nous pouvons assembler en toute sécurité la carte d'identité et le téléphone portable, et faire attention à éviter d'endommager la carte d'identité et à protéger son utilisation normale afin qu'elle puisse mieux nous servir.

Le NFC peut-il reconnaître les cartes d'identité ? Le NFC peut-il reconnaître les cartes d'identité ? Nov 03, 2022 pm 02:30 PM

NFC peut reconnaître les cartes d'identité ; dès 2015, China Mobile a annoncé que sa propre marque N1 avait ouvert la fonction NFC pour reconnaître les cartes d'identité. Grâce à une application spéciale, vous pouvez utiliser votre téléphone mobile pour lire les informations de la carte d'identité avec votre nom réel. authentification ; une fois que les téléphones mobiles deviennent populaires pour la reconnaissance d'identité. Il a la fonction de carte d'identité ou de carte d'identité et utilise un mot de passe numérique ou un mot de passe d'empreinte digitale pour améliorer dans une certaine mesure la sécurité et la lutte contre la contrefaçon de son utilisation.

Technologie d'optimisation des performances .NET pour les développeurs Technologie d'optimisation des performances .NET pour les développeurs Sep 12, 2023 am 10:43 AM

Si vous êtes un développeur .NET, vous devez être conscient de l'importance d'optimiser les fonctionnalités et les performances pour fournir des logiciels de haute qualité. En utilisant de manière experte les ressources fournies et en réduisant les temps de chargement des sites Web, vous créez non seulement une expérience agréable pour vos utilisateurs, mais vous réduisez également les coûts d'infrastructure.

Conseils pour extraire les informations de la carte d'identité à l'aide des expressions régulières PHP Conseils pour extraire les informations de la carte d'identité à l'aide des expressions régulières PHP Mar 05, 2024 pm 06:09 PM

Techniques d'extraction des informations sur les cartes d'identité à l'aide d'expressions régulières PHP Dans le développement réel, la nécessité d'extraire les informations sur les cartes d'identité est souvent utilisée. Le numéro d'identification est une chaîne contenant de nombreuses informations, notamment la région, la date de naissance, le sexe et d'autres informations. En PHP, nous pouvons extraire les informations de la carte d'identité via des expressions régulières. Ce qui suit présentera des techniques spécifiques et fournira des exemples de code pour vous aider à mieux comprendre. Extraction des informations régionales à partir du numéro de carte d'identité. Les 6 premiers chiffres du numéro de carte d'identité représentent des informations régionales. Nous pouvons extraire cette partie des informations via des expressions régulières. par

See all articles