def __getstr(self):
if self.zb:
tmp_image = self.img_rgb[self.zb[1]:self.zb[1]+ self.h + 10, self.zb[0]:self.zb[0] + self.w*2 + 10]
cv2.imwrite("tmp.png",tmp_image)
tmp_image = cv2.imread("tmp.png")
text = pytesseract.image_to_string(tmp_image)
print(text)
1
douglas1997 2019-08-25 18:49:50 +08:00 via iPhone
写之前看一下数据类型,读完再看一下
|
2
Hconk 2019-08-25 23:34:45 +08:00 via iPhone
之前遇到过类似的问题,直接识别效果不行,存成 jpg 再读出来就好了,为了防止写文件就用 imencode 成.jpg 然后再 imdecode 回来就正常了,没细究原理,回头再研究下。
|
3
sadfQED2 2019-08-26 09:05:22 +08:00 via Android
你指定 psm 试一下,另外,最好用 tesseract(好像是这个名字)替代 pytesseract,pytesseract 的实现是把图片保存到临时文件,然后用命令行调用 tesseract 识别
|
4
sadfQED2 2019-08-26 09:06:47 +08:00 via Android
保存用 PIL,指定 dpi,opencv 保存没有 dpi 信息,可能有影响
|
5
struggle001 OP |
6
struggle001 OP |
7
struggle001 OP |