我已经到了这个阶段:
我可以在上面的图像中找到数字,但我需要将它们剪掉,以便我可以保留订单等但是数字增加了间距变化和数字的位置?
所以我认为应该是找到一个白色的PX继续,直到它找到一个坚实的黑色col然后用点做一个简单的切割任何帮助都会很棒。
答案 0 :(得分:3)
一个简单的解决方案是:
这两行是你的上边界和下边界。
在这些边界之间进行如下操作:
这两行是你的左右边界。
分离单个数字的步骤可以类似地进行。
如果您需要确定图片中的数字,我建议使用专门的计算机视觉库。
一些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
答案 1 :(得分:1)
我将开始研究Connected组件分段。您找到一个字符(数字)内的像素。然后运行连通分量算法,该算法在特定规则集下查找所有连接的像素(例如,颜色略有偏差,在硬边界处停止等)。
http://en.wikipedia.org/wiki/Connected-component_labeling
如果您可以使用库,我确信OpenCV或类似的库支持开箱即用。
//编辑 我发现你需要VB.net。可能最简单的方法是将一些算法移植到VB或自己创建一个算法。
参见例如http://www.codeproject.com/Articles/336915/Connected-Component-Labeling-Algorithm
会发生什么
输入
包含两种形状的图像:
输出
现在每个都被分成单个图像。