原創|使用教程|編輯:龔雪|2015-07-21 10:30:48.000|閱讀 317 次
概述:Google Drive是存儲、組織和分析文件如文檔、圖片和視頻等的完美服務。但是,TIFF和其他光柵圖像文件很容易被忽略,因為Google Drive的搜索功能非常有限。有了LEADTOOLS,就能使用OCR 文字識別提取每個項的文本,并將它添加到IndexableTextData中。這些完成后,就可以像搜索基于文本的文檔如DOC或PDF一樣搜索光柵圖像文件了。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Google Drive是存儲、組織和分析文件如文檔、圖片和視頻等的完美服務。但是,TIFF和其他光柵圖像文件很容易被忽略,因為Google Drive的搜索功能非常有限。有了LEADTOOLS,就能使用OCR 文字識別提取每個項的文本,并將它添加到IndexableTextData中。這些完成后,就可以像搜索基于文本的文檔如DOC或PDF一樣搜索光柵圖像文件了。
例如,有四個上傳到Google Drive的普通TIFF文件。五個文件依次命名為OCR1到OCR4,因此只有基于文件名的搜索能力并不是完全有用的。
對于人類的眼睛來說,這些圖片只是文本,但是Google Drive只會將這些圖像看做普通圖片,當我們嘗試搜索掃描文件的內部內容時不會返回任何東西。
當無法搜索文件時,你的Google會變成什么樣子?幸運的是,Google Drive讓你不再迷茫,當搜索文本時,使用每個文檔自定義的IndexableTextData元數據就可以了。在下面的例子中,我們為您展示了如何使用Google Drive找到基于文本內容的TIFF文檔,且無需修改原始圖像。
應用程序的第一步是啟用我們應用程序的Google Drive,檢索ClientID和ClientSecret。在使用Google Drive API上傳和修改TIFF文件時,我們會需要這些屬性。然后,我們必須下載Google客戶端庫并在我們的解決方案中引用它。
關于設置.NET應用程序與Google Drive相連接的更多詳細信息,
請訪問 。
在應用程序中,我們會在WebBrowser中打開用戶授權Url,這樣用戶就可以輸入Google的用戶名和密碼。當用戶登錄后,我們可以從WebBrowser控件中獲取授權信息。現在應用程序登錄并授權訪問Google Drive,我們就能在賬戶中搜索所有的TIFF文件了。
FileList fileList = googleDriveHelper.GetFilesList(); IEnumerable<File> tiffFilesEnumerable = fileList.Items.Where( file => file.MimeType == "image/tiff" && file.ExplicitlyTrashed != true && file.UserPermission.Role == "owner"); foreach (File file in tiffFilesEnumerable) { UpdateIndexableTextData(file); }
最后,我們可以使用LEADTOOLS OCR文字識別引擎來獲取每個TIFF文件的文本。
創建 IOcrEngine和IOcrDocument后,RecognizeText方法會返回一個字符串值,它是從頁面中提取的全部內容,然后在 Google Drive中更新IndexableTextData元數據。
void UpdateIndexableTextData(File file) { StringBuilder indexableText = new StringBuilder(); // 獲取文檔的一個.NET流 using (System.IO.Stream stream = googleDriveHelper.GetFileAsStream(file)) { // 創建LEADTOOLS OCR引擎的一個實例 using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false)) { // 使用默認參數啟動引擎 ocrEngine.Startup(null, null, null, null); // 獲取文檔的頁數 int pageCount; using (CodecsImageInfo imageInfo = ocrEngine.RasterCodecsInstance.GetInformation(stream, true)) { pageCount = imageInfo.TotalPages; } // 創建OCR文檔 using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument()) { // 識別文檔中的每一個頁面 for (int page = 1; page <= pageCount; page++) { ocrDocument.Pages.AddPages(stream, page, page, null); // GGoogle Drive特定的可索引文本設置 indexableText.AppendFormat( "<section attribute=\"Page{0}\">", page); // 添加OCR文本 indexableText.Append(ocrDocument.Pages[0].RecognizeText(null)); indexableText.Append("</section>"); // 清理文檔,為下一頁做準備 ocrDocument.Pages.Clear(); } } } } file.IndexableText = new File.IndexableTextData(); file.IndexableText.Text = indexableText.ToString(); googleDriveHelper.UpdateFileMetadata(file); }
現在我們已經處理了Google Drive中的所有TIFF文件,即使它們在技術上是沒有文本數據的圖片,也可以通過文檔中的搜索來定位。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn