1

グレースケールビットマップ画像のセクションの個々のピクセルを検索するVB2008コードがあります。ピクセル値が72未満の場合、ピクセルの座標を2次元配列に格納します。

コードを実行すると、次のエラーが発生します。「タイプ「整数」の値を「整数の2次元配列」に変換できません。

私のコードを以下に示します。このコードは、個々のピクセル値を取得するループ内にあります。私が間違っていることについて何か提案はありますか?

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
4

1 に答える 1

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(2つの値を格納するため)のままであり、変更できません。ReDim Preserveあなたがこれについて混乱しているならについて読んでください;-)

于 2013-01-27T21:07:44.017 に答える