你调用的对象是空的。使用Emgu CV

时间:2014-04-06 15:12:50

标签: c# emgucv

请各位帮助我解决以下声明中的问题:

MCvAvgComp[][] Detector = IMAGEgray.DetectHaarCascade(face, 2.1, 10, 
 Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));"

调试解决方案之后编译器显示以下错误:

对象引用未设置为对象的实例。

2 个答案:

答案 0 :(得分:0)

IMAGEgray是静态类吗?如果不是那么它可能是一个空字段和问题的来源。

否则,这听起来像是你正在调用的方法中的一个错误。

答案 1 :(得分:0)

因为您正在处理 Haar Cascade 逻辑, IMAGEGray 看起来是类型的灰度图像

Image<Gray, byte> IMAGEGray;

确保从框架中正确初始化或正确转换。基本上检查它是否为空。

并在这一行:

IMAGEgray.DetectHaarCascade(face, 2.1, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20));

face 是一个初始化的变量,如:

var face = new HaarCascade("haarcascade_some_tree.xml");

确保不为空。

如果两个变量都不为null,那么 DetectHaarCascade 方法可能希望 face 对象中的某些字段为非null且找不到。

确保 face 对象字段是否为非null。 (初始化变量后的一些关键词)