首页 > 编程语言 >记录C#开发OCR识别身份证号接口

记录C#开发OCR识别身份证号接口

时间:2024-12-13 21:20:16浏览次数:3  
标签:识别 C# 微信 身份证号 接口 关键字 OCR

       很早的时候就萌生过开发OCR识别功能的想法。但当时任务紧急(没有这个技术),就直接调用了阿里云的付费接口。今天使用微信的时候,突然想萌生了直接使用微信OCR的方法识别。

说干就干。

       第一步肯定是百度。 百度发现不得了,有同样想法的人真是不少。

1、逆向调用QQ截图NT与WeChatOCR, 这篇内容写的非常精彩。

2、mmmojo   这篇是微信mmmojo.dll的源码。

      有了上面这两篇内容,WeChatOcr就很简单了(一个字抄)。

         第二步 抄

            然后就是调试。

          第三步、写web接口

这里由于WeChatOCR.exe 是异步的接口, 这里转成C# 使用到了TaskCompletionSource,  参考 TaskCompletionSource<TResult> 类 (System.Threading.Tasks) | Microsoft Learn

          第四步、根据关键字分字段

        这里通过 关键字”姓名“,“性别”,“民族”,“出生”,“住址”,“身份号码” 这几个关键字进行识别和定位:

效果:

 

 

     

 

 

 

 

标签:识别,C#,微信,身份证号,接口,关键字,OCR
From: https://www.cnblogs.com/tangruixin/p/18605691

相关文章

  • C/C++实例汇集(1)
    1、用代码判断一个系统是16位系统还是32位系统?以下是几种常见编程语言中判断系统是16位还是32位的代码示例C语言:#include<stdio.h>intmain(){//方法一:利用sizeofif(sizeof(int)==2){printf("16位系统\n");}elseif(sizeof(int)==4){......
  • C# 探险之旅:第十八节 - 元组(Tuple):神奇的背包与丢弃的艺术,还有变身大法!
    嘿,探险家们!欢迎再次踏上C#的奇妙旅程。今天,我们要聊的是一个非常实用又有点懒散的旅行伴侣——元组(Tuple)。想象一下,你正准备来一场说走就走的旅行,但是不想带太多行李,只想简单打包几件必需品。元组呢,就像是你的那个轻便背包,能让你轻松打包多件物品,而且不用担心超重!什么是元组?......
  • vim插件(二)之coc.nvim
    原文地址:vim插件(二)之coc.nvim–无敌牛欢迎参观我的个人博客:无敌牛–技术/著作/典籍/分享等之前写了一些vim基本操作和vim相关操作的文章,最好先看一下之前写的关于vim插件的用法,也好理解今天分享的内容。本次修改也是基于上次给出的vim插件包进行修改的,参考往期文......
  • 函数(C语言)
    前后两个void最好都写上库函数举例:doublesqrt(doublex);//sqrt是函数名//x是函数的参数,表示调用sqrt函数需要传递一个double类型的值。//最前面的double是返回值类型,表示函数的计算结果是double类型的值。a,b未交换原因:实参传递给形参,这时候形参是实参的一份临......
  • ECharts柱状图-折柱混合,附视频讲解与代码下载
    引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个柱状图图表,通过该图表我们可以直观地展示和分析数据。此外,我还将提供详细的视频讲解和代码下载链接,帮助大家快速上手。一、图表效果预览 二、......
  • Scala 变量
    变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。变量声明在学习如何声明变量......
  • Scala语句 IF...ELSE
    ScalaIF...ELSE语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程:if语句if语句有布尔表达式及之后的语句块组成。语法if语句的语法格式如下:if(布尔表达式){//如果布尔表达式为true则执行......
  • Scala 循环
    有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了更为复杂执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图:循环类型......
  • static const 关键字的使用
    1.static关键字static关键字可以用来修改变量和函数的生命周期、作用域和访问权限。修饰变量,函数,成员变量,成员函数,成员局部变量。当用来修饰变量的时候,静态变量存在于程序的整个周期内,不会因为函数运行完而消亡。静态函数是在函数体前面加上关键字static,静态函数属于类但是不......
  • linux 家族debian和CentOS
    1、两者的来源2、两者的区别debian德班和CentOS是Linux里两个著名的版本。两者的包管理方式不同。debian安装软件是用apt(apt-getinstall),而CentOS是用yumdebian下的包扩展名是.deb,CentOS下包扩展名是.rpmdebian系列中最出名的是Ubuntu。Ubuntu专注于图形化界面操作,努力使得......