我正在研究使用開源庫檢測照片中測試的最佳方法。如何檢測照片中的文本
我認爲標準方法如下(注:步驟1 - 4全部使用OpenCV的):
1)檢測的文件
2)轉換文檔大綱所以它的平板和裁剪,使用所述概述
3)使文件白色的背景下,利用過濾器
4)進料得到的圖像,以超正方體
是這是最佳的過程,還是有更好的方法,還是更好的工具? 另外,如果照片沒有文檔大綱(可能步驟1 & 2是冗餘的),會發生什麼情況?
是否有自動檢測文檔方向(即縱向/橫向)?
我正在研究使用開源庫檢測照片中測試的最佳方法。如何檢測照片中的文本
我認爲標準方法如下(注:步驟1 - 4全部使用OpenCV的):
1)檢測的文件
2)轉換文檔大綱所以它的平板和裁剪,使用所述概述
3)使文件白色的背景下,利用過濾器
4)進料得到的圖像,以超正方體
是這是最佳的過程,還是有更好的方法,還是更好的工具? 另外,如果照片沒有文檔大綱(可能步驟1 & 2是冗餘的),會發生什麼情況?
是否有自動檢測文檔方向(即縱向/橫向)?
我認爲你的過程很好。我爲Android項目使用了類似的流程。
我認爲如果文檔是縱向/橫向,您可以發現的唯一方法是用大綱的邊框長度來推理。
我不認爲有一個自動的方法來做到這一點,也許你可以找到最接近的外部輪廓與4段折線(都可以在opencv中可用)。
爲了得到這個,你必須使用contour hierarchy和contous approximation(見cv2.approxPolyDP
)。
這是我如何去自動輪廓檢測。如我所說,你算法的其餘部分對我來說似乎很好。附件號碼
PS。我會離開我的Android project GitHub link。我不知道它是否對您有用,但在此我通過拖動一些手柄來指定輪廓,然後轉換圖像並使用Java和OpenCV將其提供給Tesseract。是的這是一個非常糟糕的主意,在Android應用程序的主線程中這樣做,是的,該應用程序沒有完成。我只是想試驗OCR,所以我並不關心性能和可用性,因爲這不是用來用來學習的。
查找均勻寬度變換。
這樣做的是檢測邊緣的寬度相對於其相對邊緣的寬度差不多。因此,像排水管(可以在稍後傳遞中消除),但也是大部分文本。雖然在概念上它與距離變換相似,但公開的方法使用相當特殊的正常投影方法和Canny邊緣檢測。
我認爲你的意思是** Stroke ** width transform – Miki
感謝您的回答magicleon!我原以爲會有一些方法通過查看字母的方向來發現文檔的方向。 – user3259383
不客氣的人!如果我解決了您的問題/疑問,您可以將其標記爲解決方案;) – magicleon
其實,我很驚訝,考慮到這是一個常見的要求,沒有人沒有創建一個自動完成所有這些工作的庫。 – user3259383