백엔드 개발 C#.Net 튜토리얼 C#에서 신분증 인식 기능을 구현하기 위한 그래픽 및 텍스트 코드에 대한 자세한 설명

C#에서 신분증 인식 기능을 구현하기 위한 그래픽 및 텍스트 코드에 대한 자세한 설명

Jul 17, 2017 am 11:02 AM
.net 신분증

이 글은 주로 C# ID 카드 인식 관련 기술에 대한 자세한 설명을 소개하며, 관심 있는 친구들은 참고할 수 있습니다.

C# 관련 OCR 기술에 대한 최근 연구, 이미지 인식은 일반적으로 저급 언어를 포함합니다. C 및 C++와 같은 많은 작업을 수행하며 C#은 주로 일부 캡슐화된 구성 요소를 사용하여 호출을 수행합니다.

환경 설정

다운로드 주소: EmguCV 공식 웹사이트

파일 카테고리에서 이 EXE를 다운로드하고 install 설치 후 디렉토리에서 해당 구성요소와 일부 응용 사례를 찾을 수 있습니다. .

dll 폴더의 dll은 C# 프로젝트를 참조하고 있으며, tessdata는 class library에 해당하고 OCR에서 인식하는 언어 라이브러리를 tessdata에 추가하여 이 세 폴더에 넣었습니다. 실행을 위한 프로그램 폴더입니다.

Demo

제가 만든 작은 데모는 그림과 같습니다. ID 카드picture는 Baidu

에서 다운로드했습니다. 이 클래스 라이브러리의 유일한 단점은 텍스트 인식이 어렵다는 것입니다. 비율도 너무 낮고, 이미지 인식 효과도 너무 좋아요

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)
  {

  }
 }
}
로그인 후 복사
.

위 내용은 C#에서 신분증 인식 기능을 구현하기 위한 그래픽 및 텍스트 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

하나의 ID 카드로 여러 개의 타오바오 매장을 열 수 있습니다 하나의 ID 카드로 여러 개의 타오바오 매장을 열 수 있습니다 Oct 10, 2023 pm 01:51 PM

ID 카드로 하나의 타오바오 매장만 개설할 수 있습니다. 판매자는 타오바오 플랫폼의 규정을 준수해야 하며, 다른 사람의 ID 카드를 사용하여 여러 매장을 개설하려고 해서는 안 됩니다. 판매자는 점포를 합병하고 지점을 개설하여 사업을 확장하고 매출을 늘릴 수 있습니다. 다만, 실명인증을 위해서는 각 지점마다 독립적인 신분증을 사용해야 한다는 점에 유의해야 한다.

C#의 취업 전망은 어떻습니까? C#의 취업 전망은 어떻습니까? Oct 19, 2023 am 11:02 AM

초보자이든 숙련된 전문가이든 C#을 마스터하면 경력을 쌓는 길이 열릴 것입니다.

여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 여러 .NET 오픈 소스 AI 및 LLM 관련 프로젝트 프레임워크 공유 May 06, 2024 pm 04:43 PM

오늘날 인공지능(AI) 기술 개발은 본격화되고 있으며, 다양한 분야에서 큰 잠재력과 영향력을 보여주고 있습니다. 오늘 Dayao는 여러분에게 몇 가지 참고 자료를 제공하고자 4개의 .NET 오픈 소스 AI 모델 LLM 관련 프로젝트 프레임워크를 공유할 것입니다. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel은 OpenAI, Azure와 같은 대규모 언어 모델(LLM)을 통합하도록 설계된 오픈 소스 소프트웨어 개발 키트(SDK)입니다.

Java 프레임워크와 .NET 프레임워크 간의 성능 차이 Java 프레임워크와 .NET 프레임워크 간의 성능 차이 Jun 03, 2024 am 09:19 AM

높은 동시성 요청 처리 측면에서 .NETASP.NETCoreWebAPI는 JavaSpringMVC보다 성능이 뛰어납니다. 그 이유는 다음과 같습니다. 시작 시간을 줄여주는 AOT 조기 컴파일, 개발자가 개체 메모리 할당 및 해제를 담당하는 경우.

휴대폰과 신분증은 함께 감자되나요? 휴대폰과 신분증은 함께 감자되나요? Aug 14, 2023 pm 02:33 PM

휴대폰과 ID 카드는 함께 감자되지 않습니다. 1. ID 카드 내부에는 코일과 칩이 통합되어 있습니다. 기존 테이프, 하드 드라이브 및 기타 저장 매체와는 달리 자화 물질이 없습니다. 수십만에서 수천만 헤르츠에 달하는 높은 주파수의 전자기파는 ID 카드를 자화할 수 없습니다. 휴대폰 스피커의 자석은 ID 카드의 자기를 제거하는 효과가 없습니다. 신분증과 휴대폰을 안전하게 보관할 수 있으며, 신분증이 손상되지 않도록 주의하고 정상적인 사용을 보호하여 더 나은 서비스를 제공할 수 있습니다.

nfc는 신분증을 인식할 수 있나요? nfc는 신분증을 인식할 수 있나요? Nov 03, 2022 pm 02:30 PM

NFC는 ID 카드를 인식할 수 있으며, 2015년부터 China Mobile은 자체 브랜드 N1이 NFC의 ID 카드 인식 기능을 공개했다고 발표했습니다. 특수 앱을 통해 휴대폰을 사용하여 실명으로 ID 카드 정보를 읽을 수 있습니다. 인증; 휴대폰이 신원 인식을 위해 대중화되면 ID 카드 또는 ID 카드의 기능을 가지며 디지털 비밀번호 또는 지문 비밀번호를 사용하여 보안 및 위조 방지를 어느 정도 향상시킵니다.

개발자를 위한 .NET 성능 최적화 기술 개발자를 위한 .NET 성능 최적화 기술 Sep 12, 2023 am 10:43 AM

.NET 개발자라면 고품질 소프트웨어 제공에 있어 기능과 성능 최적화의 중요성을 인식해야 합니다. 제공된 리소스를 전문적으로 활용하고 웹 사이트 로드 시간을 줄임으로써 사용자에게 즐거운 경험을 선사할 뿐만 아니라 인프라 비용도 절감할 수 있습니다.

PHP 정규식을 활용한 신분증 정보 추출 팁 PHP 정규식을 활용한 신분증 정보 추출 팁 Mar 05, 2024 pm 06:09 PM

PHP 정규식을 이용한 신분증 정보 추출 기술 실제 개발에서는 신분증 정보 추출이 필요한 경우가 많습니다. ID번호는 지역, 생일, 성별 등 많은 정보를 담고 있는 문자열입니다. PHP에서는 정규식을 통해 ID 카드 정보를 추출할 수 있습니다. 다음은 이해를 돕기 위해 구체적인 기술을 소개하고 코드 예제를 제공합니다. 주민등록번호에서 지역정보 추출 주민등록번호 앞 6자리는 정규식을 통해 지역정보를 추출할 수 있습니다. ~에 의해

See all articles