【Python应用】自制截图取词小工具-- 解锁文字识别新姿势

article/2025/9/21 3:55:13

大家好 我是Yhen
很久不见呀

今天给大家分享一个自制的小工具—截图取词 及其制作过程
本工具是用Python写的
程序及代码的获取方式会在文末

文章目录

  • 一.创作缘由
  • 二.项目简介
  • 三.思路分析
  • 四.代码演示
  • 五.程序及源代码获取方式

一.创作缘由

为什么会想到写这么一个小程序?

因为最近我经常会有文字识别的需求
每次文字识别都需要将文字截图选取下来
再使用文字识别工具读取截图进行识别
最后复制识别后的文字

整个过程给我的感觉就很繁琐 很累
如果需要频繁操作的话人估计要崩溃了
于是就萌生了一个想法
能否实现截图后自动帮我识别程序中的文字 我只需要直接粘贴就可以了呢

一顿倒腾以后 写出了这个 截图取词 程序

话不多说 马上开始今天的制作之旅

二.项目简介

名称:截图取词

功能:

 1.截图后自动识别图像中的文字并将识别结果保存到剪切板中,用户直接粘贴即可。
 2.识别成功后会有windows系统弹窗提示识别内容
 3.识别结果保存在result文件夹内,用户可随时查取

效果如下↓

在这里插入图片描述
特点:
①文字识别一步到位
截图自动识别,解决了传统文字识别需要保存图片到本地再读取图片进行识别的繁琐操作

②识别内容自动保存到剪切板 即截即用
文字识别后马上可以粘贴了,无需再手动复制识别内容

③弹窗提示识别结果
调用系统弹窗提示识别内容 识别效果好不好 一眼就知道

综上 我认为这个工具最大的特点就是 高效
视频介绍:
截图取词-自制最高效文字识别工具 即截即粘贴

三.思路分析

首先解剖一下需求及其需要用的python库
①检测并获取剪切板中的图片 ---------------------------------PIL
②调用文字识别接口识别截图中的文字----------------------aip
③识别内容写入剪切板-------------------------------------------win32clipboard
④调用系统弹窗展示识别结果----------------------------------win10toast_click

主要的步骤就是这么几步
接下来就用代码一一将它们实现吧

四.代码演示

首先导包

import os
import time
import requests
import win32con
from PIL import Image, ImageGrab
import win32clipboard
import datetime
from win10toast_click import  ToastNotifier
from aip import AipOcr

①检测剪切板中图像内容
使用PIL库的Image和ImageGrab 实现

im = ImageGrab.grabclipboard()
img_path = ".\\img.png"
if isinstance(im, Image.Image):print('获取到一张截图...')im.save(img_path)

检测剪切版中的图像内容
若是Image.Image类型的 则将该截图保存到本地

②识别截图中的文字

""" 你的 APPID AK SK """
APP_ID = '你的appid'
API_KEY = '你的api_key'
SECRET_KEY = '你的SECRET_KEY'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)""" 读取图片 """def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()image = get_file_content(img_path)
print('正在进行识别...')""" 调用通用文字识别, 图片参数为本地图片 """# 高精度版
word = client.basicGeneral(image)
date = datetime.datetime.now().strftime('%Y-%m-%d_%H%M%S')exist_dir = os.path.exists(save_path)
if exist_dir ==False:os.mkdir(save_path)
try:str = word['words_result']print('识别成功')for x in str:data = x['words']with open(save_path + date+".txt", "a", encoding='utf-8') as f:f.write(data + '\n')f.close()

文字识别代用的是百度智能云的api
使用前需要将代码中的appi等字段替换成自己项目的appid
我在这篇文章中介绍了如何创建项目并查看自己的appid等项目信息
如果不熟悉的小伙伴可以看一下
Yhen手把手带你使用百度智能云①----项目的创建

调用文字识别后将识别结果保存到txt文件中,以当前的时间命名,避免覆盖

③识别结果写入到剪切板中

f=open(save_path +date+ ".txt", "r",encoding='utf-8')
text=f.read()
f.close()print('识别结果:\n'+text+'\n')win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32con.CF_UNICODETEXT, text)
win32clipboard.CloseClipboard()

④调用系统弹窗展示识别结果

toaster = ToastNotifier()
# showcase
toaster.show_toast("识别内容已保存至剪切板","识别结果:" + '\n' + text,icon_path='./tip.ico', #图标路径 需将tip.ico 放在代码同一路径duration=3,threaded=True,
)

实现功能的四个步骤的代码就是这样啦
运行后目录下回生成一个result文件夹

在这里插入图片描述
里面以时间命名保存着我们每次识别的结果
也方便我们以后去查看
在这里插入图片描述
那么今天的分享就到这啦
如果对你有帮助的话 可以点个小赞嘛
让我看到自己的劳动成果还是有人认可的
谢谢啦
我们下期见~

五.程序及源代码获取方式

①程序获取

扫码关注我的微信公众号 Yhen杂文铺
后台回复关键词 截图取词即可获取哦.

在这里插入图片描述

②源代码获取

扫码关注我的微信公众号 Yhen杂文铺
后台回复关键词 截图取词源码即可获取哦.

在这里插入图片描述


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

相关文章

电脑截图如何快速识别文字

你知道电脑截图如何快速识别文字吗?电脑截图快速识别文字功能是一种非常实用的技术,它可以让用户在浏览网页或阅读文档时快速获取其中的文字信息。 在本文中,我将介绍4款支持电脑截图快速识别文字功能的软件,以帮助用户更好地了解…

1分钟教会你如何截图文字识别,建议收藏备用

在工作学习中大家难免会遇到一些疑问,像是领导发下了一张工作内容的图片呀,自己需要使用到里面的一些文本内容,但由于无法直接将文字直接提取出来,也无法拷贝粘贴,所以只能截下需用到的内容进行手动搬运,不…

三分钟教你怎么截屏识别文字内容

在大学写期末小论文的时候,经常需要上网搜索一些资料,不过现在网站一般都是需要开通会员才可以对文字进行复制,这让囊中羞涩的我比较难受,于是就上网搜索了一些可以进行截图文字识别的软件,总算是顺利的将小论文完成了…

怎么截图识别文字?这些方法值得收藏

在查阅资料的时候,小伙伴们是否有遇到过无法复制页面文字的情况?这时你们都会怎么做呢?是重新找一份资料吗?还是根据已有的文字信息,手动进行录入呢?这些操作都会很影响我们的工作学习效率。其实我们只需要…

怎么识别截图中的文字?这三个方法让你轻松学会

在日常工作或学习中,我们会经常在网上查阅一些资料,当遇到一些优美的句子或者段落时,都会手动摘抄下来,这种记录方式不仅很耗时,还耗费精力,并且现在很多网站都已经不支持文本复制了,遇到这种情…

用python写一个简单的文字识别器GUI

效果图 使用方法 提取文本的步骤: 先选择普通识图还是高精度识图, 默认是普通识图 然后 方法1: 点击选择图片,然后选中图片就会自动识别图片并提取文字(gif格式的不可以提取文字) 方法2: 手动粘贴路径到最上面的单行输入框,再点击开始识别 方法3: 先用其他截图软件(比如QQ截…

matlab复杂函数多元函数拟合

简介 本文介绍了基于matlab实现的复杂函数以及多元函数的拟合。在工程和研究中偶尔会遇到要用一个非常复杂的数学公式来拟合实验测量数据,对这些复杂的数学公式拟合时,采用常见的拟合方法往往会失败,或者得不到足够精确的结果。本文以笔者多…

5.5matlab曲线拟合(多项式函数拟合)

曲线拟合的三种功能: (1)估算数据 (2)预测趋势 (3)总结规律 1、引例-人口预测问题 人口增长是当今世界上都关注的问题,对人口增长趋势进行预测是各国普遍的做法。已知某国1790年到2010年间历次人口普查数据如下表所示,请预测该国2020年的人口数。 解决思…

matlab自定义函数拟合散点

假若现在我们有如下的二维散点: x1:10; y[99.999 50.499 20.333 10.788 4.8111 2.7500 1.2322 0.4861 0.29501 0.1113498]; 在了解这些散点的大致分布之后,我们可以自己定义和其有相同单调性的函数来对散点进行拟合。 看其分布有点像对数函数&…

如何用matlab拟合二元函数,matlab二元函数拟合怎么设计函数。

matlab二元函数拟合怎么设计函数。 mip版 关注:169 答案:2 悬赏:20 解决时间 2021-01-24 19:12 已解决 2021-01-24 01:01 下面是数据,要求拟合一个二元函数,自变量为a,b。请问在非线性拟合之前怎么设计函数,使其拟合误差最小。很急,请大家帮帮忙。 a\b6.187.58.710.812…

matlab拟合函数 自定义,MATLAB 自定义函数拟合

%自定义拟合函数f(t)a*cos(k*t)*exp(w*t) clc,clear syms t x[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];%列向量 y[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; ffittype(a*cos(k*t…

false函数matlab,ISNUMBER函数使用表达式说明表 matlab拟合函数表达式

ISNUMBER函数使用表达式说明表 matlab拟合函数表达式,【excel助手】今天为大家分享一篇干货知识,如何设置matlab拟合函数表达式,今天的分享角度是从工作中常用的角度谈的,正如标题提到的“ISNUMBER函数使用表达式说明表 matlab拟合函数表达式…

Matlab-函数拟合

文章目录 0. 评价指标1. 工具箱拟合——cftool2. 万能拟合 ——nlinfit3. 多项式拟合 ——polyfit参考 0. 评价指标 一、SSE(和方差) 该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下 SSE越接近于0,说明模型选择和拟合更好&…

MATLAB函数拟合使用

1 函数命令拟合 最常用的函数拟合命令为fit,语法为| [拟合结果 拟合精度]=fit(X数据,Y数据,‘拟合类型’) 其中,具体的拟合类型可以参看帮助文档,也可以使用fittype来自定义新的函数…

MATLAB函数拟合指令,MATLAB拟合函数使用说明

(由于不方便上传公式,有部分直接截图) 2. Polyval函数 对应多项式拟合,多项式求值函数也相当重要,可以通过设定向量,快速定义如下多项式 据此,可以大概猜测到polyval调用的形式了 y = polyval(p,x) 如上所述 [y,delta] = polyval(p,x,S) S即为polyfit函数返回的误差估计,…

基于MATLAB的函数拟合

资源下载地址:https://download.csdn.net/download/sheziqiong/86763950 资源下载地址:https://download.csdn.net/download/sheziqiong/86763950 函数拟合 整体思路 将给定的坐标点分为 6 段部分,即左、左下、下、右、右上、上&#xff0…

【Matlab基础】数据拟合

目录 一、线性拟合 1. 常用辅助函数 2. 多元线性拟合 例子: 二、多项式拟合 三、lsqcurvefit函数 例子1: 例子2: 四、nlinfit非线性拟合 例子1: 例子2: 五、其他拟合函数 lsqnonlin fittype 一、线性拟合…

matlab 简单函数拟合(全)

学习笔记 对数据进行函数拟合有四种方式具体见连接 方法一:多项式拟合polyfit 方法二:工具箱拟合cftool 方法三:指定函数拟合 连接:matlab拟合函数的三种方法_Bily_on的博客-CSDN博客_matlab数据拟合 方法四是而利用regress函…

matlab拟合函数的三种方法

文章目录 方法一:多项式拟合polyfit方法二:工具箱拟合cftool方法三:指定函数拟合 方法一:多项式拟合polyfit x[1 2 3 4 5 6 7 8 9];y[9 7 6 3 -1 2 5 7 20]; P polyfit(x, y, 3) %三阶多项式拟合xi0:.2:10; yi polyval(P, xi)…

获取当前时间戳

获取当前时间戳 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 获取当前时间 SimpleDateFormat df new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String date df.…