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 Sub
Private Sub Picture1_load()
Picture1.Picture = LoadPicture("D:\a\4.bmp")
End Sub
Private 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)
If Point(x, y) <> 0 Then
y = y + 1
Else
End If
Next y
x = x + 1
Next x
j = j + 1
Next j
N = N + 1
i = i + 1
Next i
Print "N ="; N
End Sub我做该程序的目是将图片分成m*m 格,其中有多少格有黑线(我把有一个点为黑就认为是黑线),但程序运行基本上结果都是 N=m/2
很明显的运行结果错了,大家帮我看一下下啊
Private Sub Form_Load()
'假设 PictureBox 控件的名称为 Picture1
Picture1.Picture = LoadPicture("D:\a\4.bmp")
l = Picture1.Width
h = Picture1.Height
End Sub
Private Sub Picture1_load()
Picture1.Picture = LoadPicture("D:\a\4.bmp")
End Sub
Private 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)
If Point(x, y) <> 0 Then
y = y + 1
Else
End If
Next y
x = x + 1
Next x
j = j + 1
Next j
N = N + 1
i = i + 1
Next i
Print "N ="; N
End Sub我做该程序的目是将图片分成m*m 格,其中有多少格有黑线(我把有一个点为黑就认为是黑线),但程序运行基本上结果都是 N=m/2
很明显的运行结果错了,大家帮我看一下下啊
For循环没有Step,步长是多少?整型值,被1除是什么?
跟踪每一步了吗?
i = i + 1
j = j + 1
x = x + 1
都应该删掉。
If Point(x, y) <> 0 Then
y = y + 1
Else
End If按你的逻辑(猜的),应是If Point(x, y) = 0 Then
y = y - 1
End If具体的程序没有细看
就是piont(x,y)这个函数好象错了大家帮忙看一下
我是要对(x,y)这个点取RGB 色
我的目的是对图片做分形处理
将图片分成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)的颜色
条件又错了,呵呵
有空的兄弟再帮看一下