无法使用循环将整数放入数组中

时间:2013-01-27 20:39:49

标签: arrays vb.net

我有VB 2008代码,用于搜索灰度位图图像的某个部分的单个像素。如果像素值小于72,我想将像素的坐标存储在二维数组中。

当我运行我的代码时,我收到以下错误:“类型'整数'的值不能转换为'整数的二维数组'。

我的代码如下所示。此代码位于循环中,可获取单个像素值。关于我做错了什么的建议?

Dim bpCoordinates(,) As Integer
Dim yindex As Integer
Dim xindex As Integer
'If pixel value is < 72, store in array
'Framenumber and y are the integer values of the pixel coordinate
'xindex and yindex are the index values for the array that I want to store the coordinates in
If pixelValue < 72 Then                    
    bpCoordinates = (FrameNumber, y  xindex,yindex )
    yindex = yindex + 1
    xindex = xindex + 1
End If

1 个答案:

答案 0 :(得分:1)

如果您只想保存像素坐标列表,那么使用更高级的数据类型会更容易,例如

   Dim pixelList As New List(Of Point)
   ...
   pixelList.Add(New Point(xValue, yValue))

阵列是需要关心的工作。你必须在循环之前用

之类的东西初始化数组
ReDim bpCoordinates(1, 0)  

在循环中类似

    n = n + 1
    ReDim Preserve bpCoordinates(1, n)
    bpCoordinates(0, n) = Framenumber
    bpCoordinates(1, n) = y

第一个维度从0到1(存储两个值)并且无法更改。如果您对此感到困惑,请阅读ReDim Preserve; - )