level 1
zcldjm
楼主
Private Sub Command3_Click()
Dim a(0 To 200) As Integer
For j = 0 To Picture2.ScaleWidth
For i = 0 To Picture2.ScaleHeight
If Picture2.Point(j, i) = RGB(0, 0, 0) Then '垂直投影
a(j) = a(j) + 1
Picture2.PSet (j, i), RGB(255, 255, 255)
End If
Next
List1.AddItem Str(a(j))
Next
End Sub
采用投影法进行定位和分割,由垂直投影可以得到这行数字的行坐标最小值,最大值和行分割点,
对存放垂直投影值的数组a()进行扫描,第一个不为0的a()和最后一个不为0的a(),就是这组字符的起始
当a()有两个相邻的点,其中一个是0,另一个大于0,那么这个点就是行分割点.
以上是理论,,但是代码不知道怎么写...
请大佬指点一下,,
2022年08月20日 03点08分
1
Dim a(0 To 200) As Integer
For j = 0 To Picture2.ScaleWidth
For i = 0 To Picture2.ScaleHeight
If Picture2.Point(j, i) = RGB(0, 0, 0) Then '垂直投影
a(j) = a(j) + 1
Picture2.PSet (j, i), RGB(255, 255, 255)
End If
Next
List1.AddItem Str(a(j))
Next
End Sub
采用投影法进行定位和分割,由垂直投影可以得到这行数字的行坐标最小值,最大值和行分割点,
对存放垂直投影值的数组a()进行扫描,第一个不为0的a()和最后一个不为0的a(),就是这组字符的起始
当a()有两个相邻的点,其中一个是0,另一个大于0,那么这个点就是行分割点.
以上是理论,,但是代码不知道怎么写...
请大佬指点一下,,