2
我試圖從掃描的表單中提取數據。窗體有類似下面的圖片中顯示的一個標準格式:Python,文本檢測OCR
我一直在使用pytesseract(正方體OCR)來檢測圖像的文本嘗試,但並未找到文本做了體面的工作並將圖像轉換爲文本。 然而,它實質上只是給我所有檢測到的文本,而沒有保持數據的格式。
我希望能夠做一些事情,如下面:
查找文本的特定部分,然後找到下面或旁邊的相關的數據。與此相似的問題使用OpenCV的Detect text region in image using Opencv
有沒有辦法,我基本上可以做到以下幾點:
- 要麼找到窗體上的所有文本框,每個盒子上執行OCR,看看哪一個與「witnesess:」文本最接近,然後找到它下面的部分,並對這些部分執行單獨的OCR。
- 或者如果表單是標準的,並且我知道「見證」文本部分的大概位置,我可以在opencv中指定它的一般位置,然後提取下面的文本並對其執行OCR。
編輯:我試過下面的代碼,試圖檢測文本的特定區域。然而,它並不是專門識別所有地區的文字。
import cv2
img = cv2.imread('t2.jpg')
mser = cv2.MSER_create()
img = cv2.resize(img, (img.shape[1]*2, img.shape[0]*2))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
vis = img.copy()
regions = mser.detectRegions(gray)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions[0]]
cv2.polylines(vis, hulls, 1, (0,255,0))
cv2.imshow('img', vis)
下面是結果:
Tesseract可以給你包圍盒,你使用的是包裝? –
由於您似乎以明確定義的格式顯示窗體,因此您可以手動定義一些邊界框,裁剪圖像並單獨在裁剪後的圖像上運行tesseract。 – ZdaR