C# 通用OCR识别 文字识别 中文识别
软件说明
基于以下两个开源项目,做了再次封装
https://github.com/paddlepaddle/PaddleOCR
可以一键开启服务;
自带模型,可离线部署;
自带C++相关动态库;
测试地址
http://47.108.88.211/manual/OCRTest.html
软件目录

软件界面

测试
选择图片测试效果

截图识别效果

html页面测试效果


接口调用测试效果

VB调用代码
Dim request As WebRequest = WebRequest.Create("http://47.108.88.211:8082/ocr/base64")
request.Method = "POST"
Dim postData As String = "base64str=%2F9j%2F4AAQSkZJRgABAQEAYABgAAD%2F2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL%2F2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL%2FwAARCAAYAE8DASIAAhEBAxEB%2F8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL%2F8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4%2BTl5ufo6erx8vP09fb3%2BPn6%2F8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL%2F8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3%2BPn6%2F9oADAMBAAIRAxEAPwD1PUdStNKtTc3kvlxjgcZJPoBWbpXi7S9Xufs0LSRzH7qyrjd9Oafr2gR641oZpzHFbuXZNuQ4%2Fp%2F9euWVItZ8cQNpkQS1s8b5UGFbb%2FnFeZOcovQ9vC4ehUpvmbvZvyVtr%2Bp1eseJ9N0RxHdSO0xGfLjXJx6ntU2ka7Ya3Ez2chJT7yOMMv4VxWpbdJ8cXF9qtvJNayjMb7Nw6DHXjjBFO8JyxTeKb%2B%2FtU8ixWNmIPAUHGP5E1KrS57G7wFP6vzq97Xv09DsNa8QWOhJEbsuWlPypGAT9evSm3viTTrLTLfUJHkaC4%2F1ZRck8ZrgdVuF10arqssihIsRWsbNzjIycfT%2BddhoUcM%2FgiFXVJAkDZDANg8%2FrTjVcpNImeCp0qMZyve6T%2Baua2k6xa61atcWhfarbWDjBBq%2FXG%2FDr%2FkD3P%2FXb%2FwBlFdlWlOTlFNnDjKUaVaUI7IKKKK0OY5vxgusT6fHbaXCzrKSJmQgMB6fjWJ4eGv6S0NqmjIIXkHmuThiO5znsKKK5ZfGerhKt8M4OKt8%2F8zoPFqanPpa2%2BmweY8zbXcEZRfUf40ukeG7aw0J9Pky%2FnqfOcHBYkf0oorblTlqc8684UOSO1zH1fwHZJpkz6fHK90ADGpk688%2FpmtXw9oZ0zw40BjKXM8ZMqls%2FMRgUUVCpxUtCpY2vVo2m76kXgnTLrTNLmju4jFI02QpPbAFdNRRWkVaKsY4qbqVZTluFFFFWcx%2F%2F2Q%3D%3D"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As System.Net.HttpWebResponse = CType(request.GetResponse(), System.Net.HttpWebResponse)
Dim ReStream As StreamReader = New StreamReader(response.GetResponseStream, System.Text.Encoding.GetEncoding("utf-8"))
Dim resStr As String = ReStream.ReadToEnd()
response.Close()
MsgBox(resStr)
C#调用代码
var client = new RestClient("http://47.108.88.211:8082/ocr/base64");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded", "base64str=%2F9j%2F4AAQSkZJRgABAQEAYABgAAD%2F2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL%2F2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL%2FwAARCAAYAE8DASIAAhEBAxEB%2F8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL%2F8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4%2BTl5ufo6erx8vP09fb3%2BPn6%2F8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL%2F8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3%2BPn6%2F9oADAMBAAIRAxEAPwD1PUdStNKtTc3kvlxjgcZJPoBWbpXi7S9Xufs0LSRzH7qyrjd9Oafr2gR641oZpzHFbuXZNuQ4%2Fp%2F9euWVItZ8cQNpkQS1s8b5UGFbb%2FnFeZOcovQ9vC4ehUpvmbvZvyVtr%2Bp1eseJ9N0RxHdSO0xGfLjXJx6ntU2ka7Ya3Ez2chJT7yOMMv4VxWpbdJ8cXF9qtvJNayjMb7Nw6DHXjjBFO8JyxTeKb%2B%2FtU8ixWNmIPAUHGP5E1KrS57G7wFP6vzq97Xv09DsNa8QWOhJEbsuWlPypGAT9evSm3viTTrLTLfUJHkaC4%2F1ZRck8ZrgdVuF10arqssihIsRWsbNzjIycfT%2BddhoUcM%2FgiFXVJAkDZDANg8%2FrTjVcpNImeCp0qMZyve6T%2Baua2k6xa61atcWhfarbWDjBBq%2FXG%2FDr%2FkD3P%2FXb%2FwBlFdlWlOTlFNnDjKUaVaUI7IKKKK0OY5vxgusT6fHbaXCzrKSJmQgMB6fjWJ4eGv6S0NqmjIIXkHmuThiO5znsKKK5ZfGerhKt8M4OKt8%2F8zoPFqanPpa2%2BmweY8zbXcEZRfUf40ukeG7aw0J9Pky%2FnqfOcHBYkf0oorblTlqc8684UOSO1zH1fwHZJpkz6fHK90ADGpk688%2FpmtXw9oZ0zw40BjKXM8ZMqls%2FMRgUUVCpxUtCpY2vVo2m76kXgnTLrTNLmju4jFI02QpPbAFdNRRWkVaKsY4qbqVZTluFFFFWcx%2F%2F2Q%3D%3D", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
JAVA调用代码
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "base64str=%2F9j%2F4AAQSkZJRgABAQEAYABgAAD%2F2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL%2F2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL%2FwAARCAAYAE8DASIAAhEBAxEB%2F8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL%2F8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4%2BTl5ufo6erx8vP09fb3%2BPn6%2F8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL%2F8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3%2BPn6%2F9oADAMBAAIRAxEAPwD1PUdStNKtTc3kvlxjgcZJPoBWbpXi7S9Xufs0LSRzH7qyrjd9Oafr2gR641oZpzHFbuXZNuQ4%2Fp%2F9euWVItZ8cQNpkQS1s8b5UGFbb%2FnFeZOcovQ9vC4ehUpvmbvZvyVtr%2Bp1eseJ9N0RxHdSO0xGfLjXJx6ntU2ka7Ya3Ez2chJT7yOMMv4VxWpbdJ8cXF9qtvJNayjMb7Nw6DHXjjBFO8JyxTeKb%2B%2FtU8ixWNmIPAUHGP5E1KrS57G7wFP6vzq97Xv09DsNa8QWOhJEbsuWlPypGAT9evSm3viTTrLTLfUJHkaC4%2F1ZRck8ZrgdVuF10arqssihIsRWsbNzjIycfT%2BddhoUcM%2FgiFXVJAkDZDANg8%2FrTjVcpNImeCp0qMZyve6T%2Baua2k6xa61atcWhfarbWDjBBq%2FXG%2FDr%2FkD3P%2FXb%2FwBlFdlWlOTlFNnDjKUaVaUI7IKKKK0OY5vxgusT6fHbaXCzrKSJmQgMB6fjWJ4eGv6S0NqmjIIXkHmuThiO5znsKKK5ZfGerhKt8M4OKt8%2F8zoPFqanPpa2%2BmweY8zbXcEZRfUf40ukeG7aw0J9Pky%2FnqfOcHBYkf0oorblTlqc8684UOSO1zH1fwHZJpkz6fHK90ADGpk688%2FpmtXw9oZ0zw40BjKXM8ZMqls%2FMRgUUVCpxUtCpY2vVo2m76kXgnTLrTNLmju4jFI02QpPbAFdNRRWkVaKsY4qbqVZTluFFFFWcx%2F%2F2Q%3D%3D");
Request request = new Request.Builder()
.url("http://47.108.88.211:8082/ocr/base64")
.post(body)
.addHeader("content-type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
Python3调用代码
import http.client
conn = http.client.HTTPConnection("47.108.88.211:8082")
payload = "base64str=%2F9j%2F4AAQSkZJRgABAQEAYABgAAD%2F2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL%2F2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL%2FwAARCAAYAE8DASIAAhEBAxEB%2F8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL%2F8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4%2BTl5ufo6erx8vP09fb3%2BPn6%2F8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL%2F8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3%2BPn6%2F9oADAMBAAIRAxEAPwD1PUdStNKtTc3kvlxjgcZJPoBWbpXi7S9Xufs0LSRzH7qyrjd9Oafr2gR641oZpzHFbuXZNuQ4%2Fp%2F9euWVItZ8cQNpkQS1s8b5UGFbb%2FnFeZOcovQ9vC4ehUpvmbvZvyVtr%2Bp1eseJ9N0RxHdSO0xGfLjXJx6ntU2ka7Ya3Ez2chJT7yOMMv4VxWpbdJ8cXF9qtvJNayjMb7Nw6DHXjjBFO8JyxTeKb%2B%2FtU8ixWNmIPAUHGP5E1KrS57G7wFP6vzq97Xv09DsNa8QWOhJEbsuWlPypGAT9evSm3viTTrLTLfUJHkaC4%2F1ZRck8ZrgdVuF10arqssihIsRWsbNzjIycfT%2BddhoUcM%2FgiFXVJAkDZDANg8%2FrTjVcpNImeCp0qMZyve6T%2Baua2k6xa61atcWhfarbWDjBBq%2FXG%2FDr%2FkD3P%2FXb%2FwBlFdlWlOTlFNnDjKUaVaUI7IKKKK0OY5vxgusT6fHbaXCzrKSJmQgMB6fjWJ4eGv6S0NqmjIIXkHmuThiO5znsKKK5ZfGerhKt8M4OKt8%2F8zoPFqanPpa2%2BmweY8zbXcEZRfUf40ukeG7aw0J9Pky%2FnqfOcHBYkf0oorblTlqc8684UOSO1zH1fwHZJpkz6fHK90ADGpk688%2FpmtXw9oZ0zw40BjKXM8ZMqls%2FMRgUUVCpxUtCpY2vVo2m76kXgnTLrTNLmju4jFI02QpPbAFdNRRWkVaKsY4qbqVZTluFFFFWcx%2F%2F2Q%3D%3D"
headers = {
'content-type': "application/x-www-form-urlencoded"
}
conn.request("POST", "/ocr/base64", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
C# 通用OCR识别 文字识别 中文识别的更多相关文章
- ffmpeg Tesseract-OCR 识别文字滤镜 中文识别输出文本
ffprobe -show_entries frame_tags=lavfi.ocr.text -f lavfi -i "movie=in.tif,ocr=datapath=tessdata ...
- tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解
本文来源:http://blog.csdn.net/wanghui2008123/article/details/37694307 本文参考http://blog.sina.com.cn/s/blog ...
- 一篇文章搞定百度OCR图片文字识别API
一篇文章搞定百度OCR图片文字识别API https://www.jianshu.com/p/7905d3b12104
- 【图片识别】Java中使用tess4J进行图片文字识别(支持中文)(转)
http://blog.csdn.net/wsk1103/article/details/54173282 java中识别文字比较简单,使用的软件是tesseractocr(使用的版本是3.02,3以 ...
- Python人工智能识别文字内容(OCR)
环境准备 安装pytesseract和PIL 安装这两个包可以借助pip命令行安装 pip install PIL pip install pytesseract 安装识别引擎tesseract-oc ...
- Android ocr识别文字介绍(文字识别)
最近在做身份证号码识别,在网上搜索的一番后发现目前开源的OCR中tesseract-ocr算是比较强大的了,它由HP于1985年到1995年间开发,后来由google直接负责,经过谷歌进一步开发后,目 ...
- 支持批量图片转文字的【OCR】文字识别工具,支持截图识别,速度快,准确度高,免费OCR,开源软件
想必大家偶尔也有需要从图片中提取文字的需求,虽然现在手机上都自带了拍照识别功能,可是从电脑上的图片传到手机识别再将结果发回来实 在是有点麻烦,尤其当图片数量较多时,更是费时费力,使用网页版工具又要面临 ...
- Python实战:截图识别文字,过万使用量版本!(附源码!!)
前人栽树后人乘凉,以不造轮子为由 使用百度的图片识字功能,实现了一个上万次使用量的脚本. 系统:win10 Python版本:python3.8.6 pycharm版本:pycharm 2021.1. ...
- java从图片中识别文字
package com.dream.common; import java.awt.image.BufferedImage; import java.io.File; import java.io.I ...
- 基于tesseract-OCR进行中文识别
1. 环境准备 1.1 下载 下载Tesseract-OCR安装包,地址为: https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w32- ...
随机推荐
- 从零开始手写 redis(三)内存数据重启后如何不丢失?
前言 我们在 从零手写 cache 框架(一)实现固定大小的缓存 中已经初步实现了我们的 cache. 我们在 从零手写 cache 框架(一)实现过期特性 中实现了 key 的过期特性. 本节,让我 ...
- 【分布式】load balance 01-负载均衡基础知识
负载均衡系列专题 01-负载均衡基础知识 02-一致性 hash 原理 03-一致性哈希算法 java 实现 04-负载均衡算法 java 实现 负载均衡 负载均衡是高可用网络基础架构的关键组件,通常 ...
- 基于keras的双层LSTM网络和双向LSTM网络
1 前言 基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下: LSTM(units,input_shape,return_sequences=False) un ...
- Oracle 中LONG RAW BLOB CLOB类型介绍
说明: RAW: 未加工类型,可存储二进制数据或字节符 LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列[不建议使用] LONG ...
- python第一章pta习题总结
chapter 1 一.选择判断部分 1.高级语言程序要被机器执行,只有用解释器来解释执行.(F) 计算机高级语言按程序的执行方式可以分为编译型和解释型两种. 执行方式 跨平台 特点 缺点 代表语言 ...
- git bash 的一些使用
一般使用git bash需要的命令 先打开git bash: git init 可以初始化一个本地的仓库 git status 查看仓库信息 mkdir test 创建一个test的文件夹 cd te ...
- QT - Day 3
对话框 分类 模态对话框 QDialog dlg(this); dlg.resize(200,100); dlg.exec(); //窗口阻塞 非模态对话框 QDialog *dlg2 = new Q ...
- win32 - WriteConsoleA 的使用
#include <Windows.h> #include <stdio.h> #pragma warning(disable:4996) void PasswordCheck ...
- tox包
官方文档 https://tox.readthedocs.io/en/latest/example/basic.html 官方提供的一个简单的tox.ini/默认环境 [tox] envlist = ...
- 【ACM专项练习#03】打印图形、栈的合法性、链表操作、dp实例
运营商活动 题目描述 小明每天的话费是1元,运营商做活动,手机每充值K元就可以获赠1元,一开始小明充值M元,问最多可以用多少天? 注意赠送的话费也可以参与到奖励规则中 输入 输入包括多个测试实例.每个 ...