python实现图片中文字分割效果

做一个柔情的程序猿

共 1737字,需浏览 4分钟

 · 2021-04-13

本文实例为大家分享了python实现图片中文字分割的具体代码,具体内容如下

1、原始图片(包含数字):

结果图:

2、原始图片(包含文字):

结果图:


3、代码如下:

import cv2import numpy as nppath = 'test.jpg'root = 'output\\'# 图像resizedsize = 36img = cv2.imread(path)data = np.array(img)height = data.shape[0]width = data.shape[1]# 设置最小的文字像素高度min_val = 10 start_i = -1end_i = -1# 存放每行的起止坐标rowinfo = [] # 行分割for i in range(height):  # 行中有字相关信息 if (not data[i].all()): end_i = i if(start_i < 0): start_i = i pass # 行中无字相关信息 elif (data[i].all() and start_i >= 0): if(end_i - start_i >= min_val): rowinfo.append((start_i, end_i)) pass start_i, end_i = -1, -1print(rowinfo) # 列分割start_j = -1end_j = -1# 最小文字像素宽度min_val_word = 5# 分割后保存编号number = 0for start, end in rowinfo: for j in range(width): # 列中有字相关信息 if(not data[start: end, j].all()): end_j = j if(start_j < 0):  start_j = j  pass # 列中无字信息 elif(data[start: end, j].all() and start_j >= 0): if(end_j - start_j >= min_val_word): img = data[start:end, start_j: end_j] im2save = cv2.resize(img, (dsize, dsize)) #归一化处理 cv2.imwrite(root + '%d.jpg' % number, im2save) number += 1 pass start_j, end_j = -1, -1

「❤️ 感谢大家」

如果你觉得这篇内容对你挺有有帮助的话:

  1. 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
  2. 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
  3. 觉得不错的话,也可以阅读近期梳理的文章(感谢鼓励与支持🌹🌹🌹):

老铁,三连支持一下,好吗?↓↓↓


欢迎大家加入到知识星球这个大家庭,这里一定有与你志同道合的小伙伴,在这里大家可以一起交流,一起学习,一同吹逼,一同玩耍。。。


长按按钮  “识别二维码” 关注我
更多精彩内容等着你哦

点分享

点点赞

点在

浏览 65
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报