2011-10-09 82 views
4

我正在生成和讀取表單的文檔處理應用程序。所附的樣本表格作爲印刷文檔生成,由人員填寫,掃描並反饋給應用程序以檢測填充值,包括光學標記(氣泡),文本(OCR)等。Click here for Sample FormC中的圖像轉換#

由於掃描扭曲旋轉,縮放和平移方面的形象,我用了3個標記進行檢測取向和是在計算和存儲非常昂貴的一個相當原始的方式調整影像。這是它的要點:

  1. 從磁盤讀取圖像。
  2. 使用AForge.net檢測bolbs。
  3. 使用形狀,相對大小和其他屬性過濾標記。
  4. 計算旋轉和旋轉圖像。
  5. 使用AForge.net從旋轉後的圖像中檢測出bolbs。
  6. 計算比例和縮放旋轉圖像。
  7. 使用AForge.net從縮放圖像中檢測出bolbs。
  8. 計算翻譯和翻譯旋轉,縮放圖像。
  9. 使用AForge.net從翻譯圖像中檢測出bolbs。
  10. 過濾掉答案標記(氣泡),因爲我已經有了原始表單的位置。
  11. 提取平均顏色並與閾值進行比較以確定選項是否已填充。

上述被處理,我期待採取的幾何方法來提取斑點只有一次,過濾出標記/氣泡,並使用簡單的數學計算出相對於氣泡的預期位置非常精確的,但低效率的方式標記。這應該減少80%的處理時間和60%的內存使用量。

或者,必須有申請一個圖像上的所有三個轉變沒有一個影響下次的方式。這也會減少三次斑點檢測的需求。

+2

你問什麼具體問題? –

+0

我想找出氣泡標記相對於黑色標記的座標,而不是必須轉換實際圖像。 –

+0

目標是讀取這些氣泡標記的像素值,以確定它們是否被用戶填充。 –

回答

0

我將圖像模型並做轉換對模型在內存中,而不是實際的圖像。然後,一旦你計算出轉換矩陣,你可以將它應用到實際的圖像來做OCR。

+0

謝謝。您能否詳細說明對圖像進行建模? –

+0

對不起,我想我所說的是,如果你可以計算出一個矩形的斑點,那麼不用旋轉圖像,你可以將矩形對象的旋轉應用爲矩陣變換。然後你應該能夠知道blob將會在哪裏,然後你就可以用這種方式計算出規模和翻譯。一旦你有了最終的轉換矩陣,就把它應用到圖像上,你應該完成。對圖像進行單一轉換。 –

+0

謝謝。這就是我正在尋找的,但不知何故結果似乎並不準確。當我使用應用旋轉,縮放和平移到矩陣並最終調用變換時,它們似乎受到被調用序列的影響。 –