本文實例為大家分享了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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

