gpt4 book ai didi

c# - 即使没有对象为 null,也会出现 NullReferenceException

转载 作者:行者123 更新时间:2023-11-30 09:38:03 25 4
gpt4 key购买 nike

我正在使用决策树来决定图像中的像素属于组0还是组1。训练图片是1920 x 1080。上半部分是组1像素,下半部分是组0像素(每次除了 255,255,255)。

if (oFDBildDatei.ShowDialog() == DialogResult.OK)
{
string path = oFDBildDatei.FileName;
pictureBox1.Image = System.Drawing.Image.FromFile(path);

int[][] inputs = new int[2073600][]; // 1920 x 1080 picture
int[] outputs = new int[2073600];

Bitmap bitmap = (Bitmap)pictureBox1.Image;
int i = 0;
for (int line = 0; line <= pictureBox1.Height; line++)
{
for (int column = 0; column <= pictureBox1.Width; column++)
{
Color ThreeColorValues = bitmap.GetPixel(column, line);
if (ThreeColorValues.R == 255 && ThreeColorValues.G == 255 && ThreeColorValues.B == 255)
continue;
inputs[i] = new int[3];
inputs[i][0] = (int)ThreeColorValues.R;
inputs[i][1] = (int)ThreeColorValues.G;
inputs[i][2] = (int)ThreeColorValues.B;
if (line > pictureBox1.Height / 2) //Half of the picture is group 1, the other half is group 0
outputs[i] = 1;
else
outputs[i] = 0;
i++;
}
}


DecisionVariable[] attributes =
{
new DecisionVariable("R",256),
new DecisionVariable("G",256),
new DecisionVariable("B",256)
};
int classCount = 2;

baum = new DecisionTree(attributes, classCount);
ID3Learning id3learning = new ID3Learning(baum);

id3learning.Run(inputs, outputs);
}

我得到An unhandled exception of type 'System.NullReferenceException'发生在Accord.MachineLearning.dll标记id3learning.Run(inputs,outputs);但两者都没有id3learning输入输出均为null

这是异常消息:

System.NullReferenceException was unhandled
_HResult=-2147467261
_message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
HResult=-2147467261
IsTransient=false
Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Source=Accord.MachineLearning
StackTrace:
bei Accord.MachineLearning.DecisionTrees.Learning.ID3Learning.checkArgs(Int32[][] inputs, Int32[] outputs)
bei Accord.MachineLearning.DecisionTrees.Learning.ID3Learning.Run(Int32[][] inputs, Int32[] outputs)
bei program.Form1.button1_Click(Object sender, EventArgs e) in e:\c#\Form1.cs:Zeile 125.
....
InnerException:

这是 checkArgs:http://dotnetinside.com/pt/type/Accord.MachineLearning/ID3Learning/2.12.0.0

造成这种行为的原因是什么?

最佳答案

即使异常没有说明异常发生在 checkArgs 的哪一行,但也有可能发生在这一行:

if (inputs[i].Length != this.tree.InputCount)

你说inputs本身不为空。它的内容(内部数组)怎么样?它们为空吗?

如果第一个内部数组为空,inputs[0].Length 将抛出异常。

关于c# - 即使没有对象为 null,也会出现 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24715184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com