Closed wuit123 closed 2 months ago
这个需求看起来比较小众,暂时不会添加到正式版软件中。
有相同需求的小伙伴可以点个表情或者回帖,人数会影响开发决策。
不过,这功能非常简单,您可以手动添加一些python代码来实现该功能。
例如:
UmiOCR-data\py_src\ocr\output\output_txt_individual.py
# 拷贝图片到 E 盘相同路径
print("图片路径:", res["path"])
path1 = res["path"]
path2 = "E" + path1[1:] # 放到E盘。如果要放到其他盘,修改前面的 "E" 这个字符。
os.makedirs(os.path.dirname(path2), exist_ok=True)
import shutil
shutil.copyfile(path1, path2)
print(f"文件已从 {path1} 复制到 {path2}")
保存文件类型
勾选txt 单独文件
。此时,就能实现:
D:/Pictures/Screenshots/test/tttt.png
↓
E:/Pictures/Screenshots/test/tttt.png
谢谢
其实这个功能对p图的人还是帮助挺大的 举例 有个游戏有3万张图片 而带有文字的图片只有200张 ocr识别出这200张图片后 把这200张图片复制导出到指定<文件夹> 然后自动创建出原来的图片的(路径)图片名也不变
简而言之就是告诉你3万张图片只有200张有字 然后帮你一键导出来 方便你p图 完事了
谢谢
其实这个功能对p图的人还是帮助挺大的 举例 有个游戏有3万张图片 而带有文字的图片只有200张 ocr识别出这200张图片后 把这200张图片复制导出到指定<文件夹> 然后自动创建出原来的图片的(路径)图片名也不变
简而言之就是告诉你3万张图片只有200张有字 然后帮你一键导出来 方便你p图 完事了
这个功能有点意思的,就是利用OCR,相当于人工智能去找某张图片了。如果代码多,影响主程序效率,可以做出插件吧(部分人,部分场景有需求)。 我觉得这个功能如果要做,顺手加上:ocr识别出来带有文字的(指定内容如“abcd”字样,甚至支持正则)。 如果有指定的文本内容,就单独提出来那张图,单独保存起来。找到了这样的页,还可以指定后续页忽略不再识别,或者继续直到全部识别完。
不用正则了 直接识别出大概有文字就行 也就是你这一套ocr程序就够了
一键全部复制带有文字的图片到<文件夹> 保留原来图片的路径.图片名字不变 没有文字的不用管
csv
或 jsonl
。csv
或 jsonl
中,存储了OCR任务的完整信息,如图片路径、文件名、OCR结果等。用户可以自己写个小脚本,去解析这个文件,进行自己想要的操作。正则匹配?模糊搜索?复制文件?根据内容给文件重命名?任何想法都可以实现。用户可以用任何自己熟悉的语言去编写脚本,没有安装开发环境的Windows中也可以用bat或者powershell,不会编程的可以问问GPT。
好的知道了
我是不太懂编程
有空折腾一下吧
预期功能如链接里的图片
其实,应对这些千变万化的个人需求,一个更灵活的方法是:选择OCR结果保存为
csv
或jsonl
。
csv
或jsonl
中,存储了OCR任务的完整信息,如图片路径、文件名、OCR结果等。用户可以自己写个小脚本,去解析这个文件,进行自己想要的操作。正则匹配?模糊搜索?复制文件?根据内容给文件重命名?任何想法都可以实现。用户可以用任何自己熟悉的语言去编写脚本,没有安装开发环境的Windows中也可以用bat或者powershell,不会编程的可以问问GPT。
还有此等妙用,太棒了。👍💕 学到了!宝藏软件! 我懂一点正则和js,给文本编辑器写点宏之类的去解析他,这下可以发挥一下了。有这个基础功能,加上有GPT帮助,这些任务变得很爽!😀 几百个以上的任务,已经准专业需求,自己花点时间学点基础语法,值得!
下面是一个使用new bing执行简单prompt之后生成出来的程序,它足以满足issue中的请求。
import os
import json
# 读取JSONL文件
jsonl_file = "test.jsonl"
# 创建一个目录以存储带有文本的图像
output_dir = "output_images"
os.makedirs(output_dir, exist_ok=True)
# 读取JSONL文件中的每一行
with open(jsonl_file, "r", encoding="utf-8") as f:
for line in f:
data = json.loads(line)
code = data.get("code")
path = data.get("path")
# 忽略代码为101的图像(未找到文本)
if code == 101:
continue
# 从路径中提取文件名
filename = os.path.basename(path)
# 将图像移动到输出目录
new_path = os.path.join(output_dir, filename)
os.rename(path, new_path)
print(f"已将图像 {filename} 移动到 {output_dir}")
print("带有文本的图像已移动到输出目录。")
更多的有关csv和json的食用方法,后续可能会专门开一个issue来讲一下,包括如何通过gpt类工具协助快速开发满足个人需求的小插件。
其实有考虑让他生成bat的,但是bat对json的支持和对编码的处理好像一坨,我想一下怎么解决。
附,prompt示例:
好的 感谢大佬
Issues
Expected behavior 预期的功能
功能建议大致如下
ocr识别出来带有文字的<图片1> 将<图片1>保存到另一个<文件夹> 这个<文件夹>的(路径)要和原来一样 保存后的图片为<图片2>
举例 在D盘路径中提取出带有文字的图片1 到E盘 自动创建出和原来一样的(路径) D/sss/sss2/文件夹1/图片1 ↓ E/sss/sss2/文件夹1/图片2
Approximate reference (optional) 近似的参考(可选)
No response