簡體   English   中英

使用 Python/OpenCV/Tesseract 從圖像中提取數據?

[英]Extract Data from an Image with Python/OpenCV/Tesseract?

我正在嘗試從裁剪的圖像中提取一些內容。 我試過pytesseract和opencv模板匹配但是結果很差。 OpenCV 模板匹配有時會由於圖標質量差而失敗,而 tesseract 給了我一行帶有錯誤字符的文本。

我正在嘗試獲取這樣的值:

0:26 83 1 1

有什么想法或技巧嗎?

在此處輸入圖像描述

您可以使用的一種技術是模糊您的圖像。 從它的外觀來看,圖像已經有點低分辨率和模糊,所以你不需要非常努力地模糊圖像。 每當我需要在 Opencv 中使用模糊 function 時,我通常會選擇高斯模糊,因為它模糊每個像素以及每個周圍像素的技術都很棒。 一旦圖像模糊,我將對圖像進行閾值或自適應閾值。 一旦你走到這一步,應該顯示的圖像應該主要是硬線,中間夾雜着少量的短線。 然后,將閾值圖像擴大到足以連接有很多硬邊緣的位。 執行擴張后,找到該圖像的輪廓,並根據它們與圖像的高度進行排序。 由於我假設這些數字的 position 不會改變,因此您只需根據圖像的高度對輪廓進行排序。 之后,一旦你對輪廓進行了排序,只需在它們上面創建邊界框,然后從那里讀取文本。

但是,如果您想以快速而骯臟的方式執行此操作,則始終可以在要閱讀的每個區域周圍手動創建自己的 ROI 並以這種方式進行。

第一種方法

  1. 高斯模糊圖像
  2. 閾值圖像
  3. 放大圖像
  4. 查找輪廓
  5. 根據高度對等高線進行排序
  6. 在相關輪廓周圍創建邊界框

第二種方法

  1. 在要從中讀取文本的區域周圍手動創建 ROI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM