我的目的是对图片做分形处理
将图片分成m*m 格,其中有多少格有黑线(我把有一个点为黑就认为是黑线)
先对(i=1,j=1)格中(x,y)像素处理,如果(x,y)为黑则跳出该格进入(i=1,j=2)格
计数器n=n+1,否则对下一像素(x,y)处理,直到该格所有像素都处理完,进如下一格
最后统计n=?
现在我通过对picturebox的atuoredraw设置成为true
然后再设置一个函数a 令a =picture1.point(x,y)能读出point(x,y)的颜色
条件和算法又错了,呵呵
有空的兄弟再帮看一下。现在程序是这样的Dim x As Integer, y As Integer, N As Integer, m As Integer, i As Integer, j As Integer, h As Integer, l As Integer
Private Sub Form_Load()
'假设 PictureBox 控件的名称为 Picture1
Picture1.Picture = LoadPicture("D:\a\4.bmp")
l = Picture1.Width
h = Picture1.Height
End SubPrivate Sub command1_Click()
N = 0
m = Val(Text1.Text)
For i = 1 To m
    For j = 1 To m
        For x = 0 + l / m * (i - 1) To l / m + l / m * (i - 1)
            For y = 0 + h / m * (j - 1) To h / m + h / m * (j - 1)
                a = Picture1.Point(x, y)
                If a = 0 Then
                y = h / m + h / m * (j - 1) And N = N + 1
                Else
                
                Next y
                End If
                Next x
    
    Next j
    N = N + 1Next i
Print "N ="; N
End Sub
ps:怎么给热心人分那,我好象给过了但是有看不到

解决方案 »

  1.   

    If a = 0 Then
                    y = h / m + h / m * (j - 1) And N = N + 1
                    Else
                    
                    Next y
                    End If
    这段不对,next y放到end if后面才行,那个没用的else也去掉。
    另外,在for循环中,请不要轻易改变循环子的值,这样极易出错。你上面的程序好像是个死循环,你不妨说出来你的思路和你的目的,让大家帮你写一段。你的程序太难度,加点注释,OK?给分的话,点屏幕右下的“管理”
      

  2.   

    For i = 1 To m
        For j = 1 To m
            blnF  = false
            'deal with a single cell
            For x = 0 + l / m * (i - 1) To l / m + l / m * (i - 1)
                For y = 0 + h / m * (j - 1) To h / m + h / m * (j - 1)
                    a = Picture1.Point(x, y)
                    If a = 0 Then
                      'y = h / m + h / m * (j - 1) And N = N + 1
                      N = N + 1
                      blnF = True
                      exit for 
                    Else
                    
                    End If
                Next y
                if blnF then
                  exit for
                end if 
            Next x
        
        Next j
        'N = N + 1Next i