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

也许你要早上七点起床,晚上十二点睡觉,日复一日,踽踽独行。但只要笃定而动情地活着,即使生不逢时,你人生最坏的结果,也只是大器晚成。

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

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

结果图:

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

结果图:

3、代码如下:

import cv2
import numpy as np
 
path = 'test.jpg'
root = 'output\\'
# 图像resize
dsize = 36
img = cv2.imread(path)
data = np.array(img)
height = data.shape[0]
width = data.shape[1]
# 设置最小的文字像素高度
min_val = 10
 
start_i = -1
end_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, -1
print(rowinfo)
 
# 列分割
start_j = -1
end_j = -1
# 最小文字像素宽度
min_val_word = 5
# 分割后保存编号
number = 0
for 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

本文python实现图片中文字分割效果到此结束。天上最美的是星星,世间最美的是真情。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
Python自动化运维-使用Python脚本监控华为AR路由器关键路由变化

Python自动化运维-netmiko模块设备自动发现

Python自动化运维—netmiko模块连接并配置华为交换机

Python自动化运维-利用Python-netmiko模块备份设备配置

Python自动化运维-Paramiko模块和堡垒机实战