我的目的是对图片做分形处理
将图片分成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:怎么给热心人分那,我好象给过了但是有看不到
将图片分成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:怎么给热心人分那,我好象给过了但是有看不到
解决方案 »
- 在VB中怎样读取DLL中结构体中的数组?
- 病毒诊断分析程序(病毒分析师的福音)
- ActiveReport显示的问题
- VB读取PB写入SQL数据库的中文时为乱码如何解决?请教.
- 为什么这条select语言不对?
- TREEVIEW怎样设置焦点?
- 怎么调用制作好的帮助文件!
- httpwebrequest和httpwebresponse 报错!请求帮助。急!!
- playyuer(女㊣爱): 版主啊,再帮忙看一下吧!http://www.csdn.net/expert/topicview1.asp
- 我做了个东东可以模拟任务栏,但对系统栏我就没有办法了,那位高手知道如何得到系统栏内有什么程序以及他们的图标吗?
- 纠正“WINSOCK一次最多传送8K”的错误说法,让我走了很多弯路
- 怎样在vb中加入flash?
y = h / m + h / m * (j - 1) And N = N + 1
Else
Next y
End If
这段不对,next y放到end if后面才行,那个没用的else也去掉。
另外,在for循环中,请不要轻易改变循环子的值,这样极易出错。你上面的程序好像是个死循环,你不妨说出来你的思路和你的目的,让大家帮你写一段。你的程序太难度,加点注释,OK?给分的话,点屏幕右下的“管理”
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