我得這個階段: 如何動態地從圖像中切出數字?
在哪裏可以找到上面的圖片中的數字,但我需要把它們剪下來,所以我可以保持秩序等,但隨着數量的增加的間距變化和號碼的位置?
所以我認爲它應該是一個白色的PX找到一個繼續,直到它找到一個堅實的黑色col,然後使用點來做一個簡單的剪切任何幫助將是偉大的。
我得這個階段: 如何動態地從圖像中切出數字?
在哪裏可以找到上面的圖片中的數字,但我需要把它們剪下來,所以我可以保持秩序等,但隨着數量的增加的間距變化和號碼的位置?
所以我認爲它應該是一個白色的PX找到一個繼續,直到它找到一個堅實的黑色col,然後使用點來做一個簡單的剪切任何幫助將是偉大的。
簡單的解決辦法是這樣的:
與第一水平線兩條線是你的上邊界和下邊界。
這個邊界之間進行這樣的:
這兩行是你的左右邊界。
分離單個數字的步驟可以類似地執行。
如果您需要確定圖片中的數字,我推薦使用專門的計算機視覺庫。
一些VB.net僞代碼,讓你去:
Sub FindTopBorder(image As MyImage) As Integer
For y = 0 to image.Height - 1
For x = 0 to image.Width - 1
Dim pixel = image.GetPixel(x, y)
If ('Check if pixel is white here with RGB or Color') Then
Return y
End If
Next
Next
' Just in case there are no white pixels or use an exception instead
Return -1
End Sub
我就開始尋找到連接的組件分割。你找到一個字符(數字)內的像素。然後運行連接組件算法,該算法根據特定規則集(例如,顏色的輕微偏差,在硬邊界處停止等)查找所有連接的像素。
http://en.wikipedia.org/wiki/Connected-component_labeling
如果你可以使用圖書館,我敢肯定,OpenCV的或類似的庫支持這個開箱即用。
//編輯 我看到你需要VB.net。將某些算法移植到VB或自己創建一個算法是最容易的。
參見例如http://www.codeproject.com/Articles/336915/Connected-Component-Labeling-Algorithm
什麼期望
輸入
含有兩種形狀的圖像:
輸出
現在每個被分離成單個圖像。
你可以敲一點代碼togeather做一個雙方,因爲我不知道如何啓動它?謝謝 – 2014-09-04 12:29:47