pytesseract 識別率低提升方法
一.跟換識別語言包
下載地址https://github.com/tesseract-ocr/tessdata
二.修改圖片的灰度
from PIL import Image
from PIL import ImageEnhance
import pytesseract
img = Image.open('sanyecao.jpg')
img = img.convert('RGB') #這里也可以嘗試使用L
enhancer = ImageEnhance.Color(img)
enhancer = enhancer.enhance(0)
enhancer = ImageEnhance.Brightness(enhancer)
enhancer = enhancer.enhance(2)
enhancer = ImageEnhance.Contrast(enhancer)
enhancer = enhancer.enhance(8)
enhancer = ImageEnhance.Sharpness(enhancer)
img = enhancer.enhance(20)
text=pytesseract.image_to_string(img)
三.結合cv2,np對於圖片處理后在進行讀取
這個情況有很多種,也不說了,可以自己去嘗試,簡單寫個調整圖片亮度
#調整亮度
filename = "sanyecao.jpg"
img = cv2.imread(filename, 0)
print(np.shape(img))
kernel = np.ones((1,1), np.uint8)
dilate = cv2.dilate(img, kernel, iterations=1)
cv2.imwrite('new_dilate.jpg', dilate)
#還有些常用的方法
cv2.Canny
cv2.erode
cv2.rectangle
original_img = cv2.imread("qingwen.png", 0)
# canny(): 邊緣檢測
img1 = cv2.GaussianBlur(original_img,(3,3),0)
canny = cv2.Canny(img1, 50, 150)
# 形態學:邊緣檢測
_,Thr_img = cv2.threshold(original_img,210,255,cv2.THRESH_BINARY)#設定紅色通道閾值210(閾值影響梯度運算效果)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5)) #定義矩形結構元素
gradient = cv2.morphologyEx(Thr_img, cv2.MORPH_GRADIENT, kernel) #梯度
cv2.imshow("original_img", original_img)
cv2.imshow("gradient", gradient)
cv2.imshow('Canny', canny)