我有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
答案 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
; - )