新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关如何使用python实现图片中文字分割效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联是一家以网络技术公司,为中小企业提供网站维护、成都网站建设、网站设计、网站备案、服务器租用、域名注册、软件开发、小程序制作等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站联系电话:189820811081、原始图片(包含数字):
结果图:
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实现图片中文字分割效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。