对象引用未设置为对象的实例.使用Emgu CV

本文关键字:实例 使用 Emgu CV 对象 设置 对象引用 | 更新日期: 2023-09-27 17:56:52

请大家帮助我解决以下语句中的问题:

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

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

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

对象引用未设置为对象的实例.使用Emgu CV

因为您正在处理 Haar 级联逻辑,所以 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");

确保人脸不为空。

如果两个变量都不为空,则 DetectHaarCascade 方法可能期望人脸对象中的某些字段为非空,并且它正在查找空。

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

IMAGEgray 是静态类吗?如果不是,则可能是空字段和问题的根源。

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

您需要

在.../bin/Debug中添加.xml文件。然后键入您的 ProcesFrame 方法:哈尔是哈尔瀑布haar = new HaarCascade("haarcascade_frontalface_default.xml");