python图片ocr识别手写印刷体中英文字体

article/2025/11/5 8:41:39

脚本说明:
脚本需要修改 APPID 以及 API_KEY的值,请到讯飞api平台获取。

首先截图,然后打开脚本直接运行,该脚本自动识别剪切板上内容,脚本运行结束后,直接crtl+v复制。

# -*- coding: utf-8 -*-
import base64
import hashlib
import time
import keyboard as keyboard
import pyperclip
import requests
#获取剪切板内容
from PIL import ImageGrab# OCR手写文字识别接口地址
URL = "http://webapi.xfyun.cn/v1/service/v1/ocr/handwriting"
# 应用APPID(必须为webapi类型应用,并开通手写文字识别服务,参考帖子如何创建一个webapi应用:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=36481)
APPID = ""
# 接口密钥(webapi类型应用开通手写文字识别后,控制台--我的应用---手写文字识别---相应服务的apikey)
API_KEY = ""def getHeader():curTime = str(int(time.time()))param = "{\"language\":\""+language+"\",\"location\":\""+location+"\"}"paramBase64 = base64.b64encode(param.encode('utf-8'))m2 = hashlib.md5()str1 = API_KEY + curTime + str(paramBase64, 'utf-8')m2.update(str1.encode('utf-8'))checkSum = m2.hexdigest()# 组装http请求头header = {'X-CurTime': curTime,'X-Param': paramBase64,'X-Appid': APPID,'X-CheckSum': checkSum,'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',}return header#图片转换为base编码
def getBody(filepath):with open(filepath, 'rb') as f:imgfile = f.read()data = {'image': str(base64.b64encode(imgfile), 'utf-8')}return data#英文判断
def isEnglish(keyword):#return keyword.isalpha()  #判断纯单词 是否是英文return all(ord(c) < 128 for c in keyword)# 写入到剪切板
def settext(aString):# importing the module# copies all the data the user has copiedpyperclip.copy(aString)# paste the copied data from clipboardpyperclip.paste()#保存剪切板数据图片
def get_pic():# 按ctrl+后才执行下面的语句#keyboard.wait(hotkey='ctrl+alt+a')# ctrl+c保存截图至剪切板, ImageGrab从剪切板读取图片img1 = ImageGrab.grabclipboard()#print(type(img1))# 文件保存的名字img_path = str(int(time.time()))+"javachuan"+".png"img1.save(img_path)return img_path# 语种设置
language = "cn|en"
# 是否返回文本位置信息
location = "true"
r = requests.post(URL, headers=getHeader(), data=getBody(get_pic()))
resp=r.json()
result=""#每一行的数据
content="" #每一行某个数据 某个文字/某个单词
for i in range(0,len(resp["data"]["block"][0]["line"])):for j in range(0,len(resp["data"]["block"][0]["line"][i]["word"])):content=resp["data"]["block"][0]["line"][i]["word"][j]["content"]if isEnglish(content):result+=content+" "  #英文单词 需要  空格else:result+=contentresult+="\n" #换行#添加到剪切板
settext(result)
print(result)

我的ocr python脚本效果演示
中英文可以有效识别,并且尽可能保持原字体格式,英文单词之间有 空格,
原本是同一行,就是同一行。

qq的文字识别效果演示
是恶速度慢,并且识别后不好复制,不能保持原样。


http://chatgpt.dhexx.cn/article/QCScFnFY.shtml

相关文章

Python识别发票图片

1.先去百度云官网注册登录&#xff0c;然后创建一个应用 2.创建应用后会有API KEY 和 Secret Key 3.获取token&#xff0c;在接口中填入API Key 和Secret Key import requests host https://aip.baidubce.com/oauth/2.0/token?grant_typeclient_credentials&client_idAP…

python图像识别与提取_python图像识别与提取

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 从机器学习的的角度来说,首先要提取图片的特征,将这些特征进行分类处理,训练并建立模型,然后在进行识别。 但是让计算机去区分这些图片分别是哪一类是很不容…

【pytesseract】python图片识别OCR库

目录 一、pytesseract简介1.1 pytesseract库1.2 pytesseract用途 二、pytesseract安装2.1 安装和配置底层应用Tesseract-OCR2.1.1 GitHub 官网地址&#xff1a;查看源码2.1.2 官网安装包&#xff1a;下载2.1.3 安装Tesseract-OCR2.1.4 配置环境变量2.1.5 查看Tesseract-OCR是否…

python识别图片表格内容

python-opencv表格识别 文章目录 python-opencv表格识别前言一、环境准备二、tesseract-OCR搭建1.tesseract-OCR2.debug tesseract 三、源码1.源码2.运行结果 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;python环境的搭建这里暂不做介绍&#xff0c;不会的…

python图片识别之tesseract

经过两个下午的尝试&#xff0c;终于搞出来了&#xff1b;特记录下来备忘&#xff1b; 首先来看python代码识别图片&#xff0c;这一段较为简单&#xff1b; from PIL import Image # import tesserocr # 完全可以不用这个 import pytesseractimage Image.open(rhahah.jpg)…

Python OCR识别图片

OCR技术是光学字符识别的缩写(Optical Character Recognition)&#xff0c;是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息&#xff0c;再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。可应用于银行票据、大量文字资料…

Python图片识别——人工智能篇

目录 一、安装pytesseract和PIL PIL全称&#xff1a;Python Imaging Library&#xff0c;python图像处理库&#xff0c;这个库支持多种文件格式&#xff0c;并提供了强大的图像处理和图形处理能力。 由于PIL仅支持到Python 2.7&#xff0c;所以在PIL的基础上创建了Pillow库&…

部署kvm

实验需求&#xff1a; 1、部署kvm 2、使用WebVirtMgr的WEB界面管理 3、在该WEB界面中安装一台Linux操作系统 环境说明&#xff1a; 系统&#xff1a;CentOS7 IP&#xff1a;192.168.253.145 1. CPU虚拟化功能 部署前请确保你的CPU虚拟化功能已开启&#xff0c;分为两种情况…

KVM是什么 机柜 机架服务器 怎么用

多个刀片服务器连接到KVM&#xff0c;使用KVM对它们进行统一管理 每个服务器在KVM上有一个序号&#xff0c;切换序号&#xff0c;桌面就会进入到对应的服务器 是看PORT ID 上面的ON LINE哪些灯亮&#xff0c;则代表连上了哪几个服务器

linux服务器部署kvm

1.查看系统版本 [rootlocalhost ~]# cat /etc/centos-release CentOS Linux release 7.5.1708 (Core)2.检查是否开启虚拟化。有VMX或者svm [rootlocalhost ~]# cat /proc/cpuinfo | egrep vmx|svm如果没有数据显示的话&#xff0c;关闭虚拟机&#xff0c;点击虚拟机设置。 3…

KVM服务器安装详解及其应用(Services02 DAY01)

安装一台KVM服务器  问题 本例要求安装一台可用的KVM服务器&#xff1a; 准备一台CentOS6服务器安装虚拟化相关包组启动libvirtd服务  方案 在CentOS6系统中&#xff0c;KVM虚拟化相关的软件组包括四个&#xff1a;虚拟化、虚拟化客户端、虚拟化工具、虚拟化平台&#xff…

服务器的虚拟kvm是什么,服务器 配置虚拟kvm功能

服务器 配置虚拟kvm功能 内容精选 换一换 Linux操作系统XEN实例变更为KVM实例前&#xff0c;必须完成驱动的安装和配置。本节操作指导您手动安装Linux云服务器驱动、配置磁盘自动挂载等&#xff0c;并将XEN实例变更为KVM实例。如需使用自动化脚本安装驱动的方法请参考XEN实例变…

kvm云服务器虚拟化,kvm虚拟化 云服务器

kvm虚拟化 云服务器 内容精选 换一换 用户在华东区创建了一个保护组及其保护实例&#xff0c;如表1所示。删除该保护实例&#xff0c;但不删除容灾站点服务器。然后在弹性云服务器页面&#xff0c;卸载容灾站点服务器的云硬盘&#xff0c;并将该云硬盘挂载给可用区AZ1中的其他云…

搭建KVM服务器(1)

安装虚拟化服务器平台 虚拟化概念 • KVM /QEMU /LIBVIRTD – KVM是linux内核的模块,它需要CPU的支持,采用硬件辅劣虚拟化技术 Intel-VT,AMD-V,内存的相关如Intel的 EPT 和 AMD 的 RVI 技术。 – QEMU 是一个虚拟化的仿真工具,通过 ioctl 不内核kvm 交互完成对硬件的虚拟化支…

稳定kvm服务器vps,kvm的服务器vps

kvm的服务器vps 内容精选 换一换 oVirt Engine是运行在基于JBoss的Java应用程序。该服务与主机上的VDSM进行通信&#xff0c;以部署、启动、停止、迁移和监控VM&#xff0c;并且还可以通过模板在存储上创建新的镜像。oVirt Engine以可扩展性、安全性、高性能为基础的架构技术&a…

维护华为服务器的好工具KVM

以前维护服务器&#xff0c;要么打开远程桌面&#xff0c;要么打开telnet&#xff0c;或者使用其他的远程工具&#xff0c;今天维护一台新购买的华为服务器&#xff0c;使用了华为官网下载的KVM&#xff0c;真好用&#xff01; 使用网线&#xff0c;找到Mgmt的网口插入&#xf…

服务器系统kvm安装,云服务器安装kvm

云服务器安装kvm 内容精选 换一换 安装完操作系统后的临时云服务器需要进行相关配置&#xff0c;并安装原生的XEN和KVM驱动&#xff0c;才能保证后续创建的云服务器正常使用。该任务指导用户完成Linux云服务器的相关配置与驱动安装&#xff0c;从而创建为Linux系统盘镜像。配置…

vnc远程管理kvm,在办公室连接kvm服务器

文章目录 vnc远程管理kvm vnc远程管理kvm vnc概念图 首先试试服务器装了VNC没 rpm -q tigervnc tigervnc-server没安装的话会直接出现 package tigervnc is not installed package tigervnc-server is not installed第一步&#xff0c;安装VNC packages&#xff1a; yum …

安装一台KVM服务器

1.安装一台KVM服务器 问题 本例要求安装一台可用的KVM服务器&#xff1a; 1)准备一台CentOS6服务器 2)安装虚拟化相关包组 3)启动libvirtd服务 方案 在CentOS6系统中&#xff0c;KVM虚拟化相关的软件组包括四个&#xff1a;虚拟化、虚拟化客户端、虚拟化工具、虚拟化平台&a…

kvm服务器创建虚拟机

virsh创建kvm虚拟机 详细讲解在Linux服务器上通过virsh工具创建kvm虚拟机&#xff0c;以及一些kvm虚拟机常用命令&#xff0c;如&#xff1a;创建、启动、删除、销毁等。 注意事项&#xff1a;在进行kvm虚拟机创建前需要确认Linux内核已经开启kvm功能。另一方面&#xff0c;vi…