# 头文件
import pytesseract
from PIL import Image
# 利用tesseract进行文字识别Image.open()括号里的是目标图片位置
image = Image.open('C:/Users/yangp/Desktop/2ext/新建文件夹/202207.jpg')
word = pytesseract.image_to_string(image, lang='chi_sim')
print(word)
上段代码可以直接对任意图片进行文字识别 读者可以自己试一下。
大部分的文字被识别出来,我们可以直接copy图片中的专利名,用于更改图片名字,但这种改法,效率低,而且存在空格。
增加过滤函数remove。利用string.replace(“|”, “”),将括号中前一个字符如空格换成无。
def remove(string):
string = string.replace(" ", "")
string = string.replace("|", "")
string = string.replace(":", "")
string = string.replace(";", "")
string = string.replace(".", "")
string = string.replace("“", "")
return string.replace("\n", "");
过滤后完整代码如下
import pytesseract
from PIL import Image
def remove(string):
string = string.replace(" ", "")
string = string.replace("|", "")
string = string.replace(":", "")
string = string.replace(";", "")
string = string.replace(".", "")
string = string.replace("“", "")
return string.replace("\n", "");
image = Image.open('C:/Users/yangp/Desktop/2ext/新建文件夹/202207.jpg')
word = pytesseract.image_to_string(image, lang='chi_sim')
cword = remove(word)[10:500]
print(cword)
remove(code)[10:500]这里增加了一个字段范围的筛选,只要10~500之间,减少显示字数。
过滤后的文字删去多余字符,可以直接copy,这里有个错别字,看来这个文字识别效果一般。
改名代码
newpath = 'C:/Users/yangp/Desktop/2ext/新建文件夹/' # 保存图片位置
newname = "一种低压铸造电机外壳螺旋水道砂芯清理机及其操作方法" # 0 是新,可以修改
out = '2' + '+' + newname + '.jpg'
print(out1)
image.save(newpath + out)
newpath:改名后保存地址
newname:改的名字:2+一种无风扇散热装置,可以增加序号。
image.save(newpath + out) 保存!
import pytesseract
from PIL import Image
def remove(string):
string = string.replace(" ", "")
string = string.replace("|", "")
string = string.replace(":", "")
string = string.replace(";", "")
string = string.replace(".", "")
string = string.replace("“", "")
return string.replace("\n", "");
image = Image.open('C:/Users/yangp/Desktop/2ext/新建文件夹/202207.jpg')
word = pytesseract.image_to_string(image, lang='chi_sim')
cword = remove(word)[10:500]
print(cword)
newpath = 'C:/Users/yangp/Desktop/2ext/新建文件夹/' # 保存图片位置
newname = "一种无风扇散热装置" # 可以将提取的文字人工筛选一下,放在这里,或者直接让cword=newname
out = '2' + '+' + newname + '.jpg'
print(out)
image.save(newpath + out)
其实最好效果是,识别出图片中想要的文字,然后自动给图片改名,搜索相关文献后,发现一种可以识别图片特定位置的文字,但是,对特定位置的识别中,识别图形效率高,识别文字差,且由于图片的变形,识别文字效果一般,受限于笔者技术,这里的代码算是半成品,抛砖引玉和大家交流。