第一个函数是修复图像中缺少的点 (4方向)
输入:
1 图像的二维数组 (二值)
2 阈值 要具体测试,使用0~5之间的阈值获得最佳效果
return nothing
图像的二维数组被直接操作
Public Function FixPoints(ByVal PicAInput(,) As Integer, ByVal L As Integer)
Dim i, j As Integer
Dim Tmp_Count As Integer
For i = 1 To 50
For j = 1 To 50
'If PicAInput(i, j) = 1 Then Tmp_Count += 1
If PicAInput(i + 1, j) = 1 Then Tmp_Count += 1
If PicAInput(i - 1, j) = 1 Then Tmp_Count += 1
If PicAInput(i, j + 1) = 1 Then Tmp_Count += 1
If PicAInput(i, j - 1) = 1 Then Tmp_Count += 1
If Tmp_Count > L Then
PicAInput(i, j) = 1
End If
Tmp_Count = 0
Next
Next
Return Nothing
End Function
函数2
输入同上,不过是修复独立的点 (对验证码中的干扰线有去除功能
Public Function FixSpoint(ByVal PicAInput(,) As Integer, ByVal L As Integer)
Dim i, j As Integer
Dim Tmp_Count As Integer
For i = 1 To 50
For j = 1 To 50
'If PicAInput(i, j) = 1 Then Tmp_Count += 1
If PicAInput(i + 1, j) = 0 Then Tmp_Count += 1
If PicAInput(i - 1, j) = 0 Then Tmp_Count += 1
If PicAInput(i, j + 1) = 0 Then Tmp_Count += 1
If PicAInput(i, j - 1) = 0 Then Tmp_Count += 1
If Tmp_Count > L Then
PicAInput(i, j) = 0
End If
Tmp_Count = 0
Next
Next
Return Nothing
End Function
200字以内,仅用于支线交流,主线讨论请采用回复功能。