[英]Is there any way in OCR/tesseract/OpenCV for extracting text from a particular region of an image?
我正在使用AI設置新的發票提取方法,我能夠從發票圖像中識別“總計”/“公司詳細信息”,但需要幫助通過指定圖像中的區域從發票圖像中識別的特定區域中提取數據(Xmin,Xmax,Ymin,Ymax)?
看起來你是新手,所以讓我幫助你快速了解關鍵字中使用的術語。
OCR是光學字符識別的一個概念Tesseract是OCR的特殊庫處理。 OpenCV有助於圖像處理庫幫助進行對象檢測和識別。
是的,您可以使用tesseract庫從圖像中提取超過300dpi的文本,但在此之前,您應該使用該字體訓練tesseract模型,如果文本字體是新的或系統未知的話。
另外請記住,如果您能夠在調用tesseract之前對文本進行包裝圖像處理,它將更准確地工作。
某些字框圖像,dpi會創建警報,但這些是您工作的樞軸概念。
我的建議是,如果你想從圖像中提取數字,請一步一步地進行。
通過提高圖像質量來處理圖像。
檢測想要提取的區域。
找到輪廓和面積。
將其傳遞給盒式圖像編輯器並調整參數
最后把它交給Tesseract。
AWS最近推出了一項名為Textract的服務,它完全符合您的目標。
博客文章+示例: https : //aws.amazon.com/blogs/machine-learning/automatically-extract-text-and-structured-data-from-documents-with-amazon-textract/
您可以提供圖像,PDF和Excel文件,並將任何文本提取並轉換為對象。 我還沒有使用過該服務,但計划在周末。
Python示例如下:
import boto3
# Document
s3BucketName = "ki-textract-demo-docs"
documentName = "simple-document-image.jpg"
# Amazon Textract client
textract = boto3.client('textract')
# Call Amazon Textract
response = textract.detect_document_text(
Document={
'S3Object': {
'Bucket': s3BucketName,
'Name': documentName
}
})
#print(response)
# Print detected text
for item in response["Blocks"]:
if item["BlockType"] == "LINE":
print ('\033[94m' + item["Text"] + '\033[0m')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.