file - 在读入 OCR 之前按升序对图像文件进行排序
问题描述
我想遵循循环来处理文件名,以便 ocr 以升序方式读取它们,否则提取的文本不是按顺序排列的,然后我必须转到原始图像并打乱提取的块。
我有文件为0001.jpg, 0002.jpg, 0003.jpg, 0004.jpg, 0005.jpg
.
现在被提取的文本是在0002.jpg, 0003.jpg, 0005.jpg, 0004.jpg, 0001.jpg
. 所以我无法让 OCR 阅读器根据文件编号顺序进行读取。
我有以下代码,但到目前为止它不起作用序列。
if len(a) > 2:
for fn in os.listdir(a):
if fn.endswith(".png") or fn.endswith(".jpg"):
natsort.natsorted(fn)
x = os.path.join(a, fn)
rd = pytesseract.image_to_string(Image.open(x), lang='eng') \
.replace('-\n', '').replace('\n', ' ').encode("ascii", 'ignore')
tb1.insert('insert', rfi)
tb1.insert('insert', rd)
tb1.insert('insert', br)
count += 1
else:
continue
else:
count -= 1
messagebox.showinfo(title="PROCEDURAL ERROR",
message="Set FOLDER & NEW_NOTE.")
OCR部分没问题,我已经成功使用了。问题是我无法在执行 OCR 部分之前进行排序。
解决方案
我想我明白了。
if len(a) > 2:
xa = []
for dp, dn, fn in walk(a):
fn.sort(key=lambda g: int(g.split(".")[0]))
for s in fn:
xa.append(a + '/' + s)
for x in xa:
rd = pytesseract.image_to_string(Image.open(x), lang='eng') \
.replace('-\n', '').replace('\n', ' ').encode("ascii", 'ignore')
tb1.insert('insert', rfi)
tb1.insert('insert', rd)
tb1.insert('insert', br)
count += 1
else:
count -= 1
messagebox.showinfo(title="PROCEDURAL ERROR",
message="Set FOLDER & NEW_NOTE.")
推荐阅读
- sql-server - 我正在尝试将以下 SQL 存储过程转换为 Snowflake。但我还找不到 EXEC 语句的替代方法:
- python - 文件名上的 Spyder IDE 字体太大
- angular - Google 表格 JSON 端点更改
- ios - Pytorch:找不到 aten::empty.memory_format 的架构
- outlook - 程序化日历邀请未添加到 Office 365 的组织者日历中
- cypher - 用于 gremlin 遍历的 Cypher 查询
- python - 如何在带有熊猫的列数据框前面添加值
- python - 如何显示布尔字段为真的 django 模型的数据?
- java - Hazelcast 中的集群合并通知
- python - selenium + Python csv 文件输出搞砸了