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 |