Emgu.CV.Util.CvException问题
代码如下,生成没出错,但运行的时候一直有异常,好像是cvcopy的问题,不知如何解决,请大佬赐教。
capture.Retrieve(frame, 0); // 摄像机抓取图像
imageBox1.Image = frame;
image = frame.ToImage<Gray, Byte>();
image1 = new Image<Gray,Byte>(image.Width,image.Height);
Image<Gray, Byte> image2 = image;
image2._EqualizeHist();
faces = faceClassifier.DetectMultiScale(image, 1.1, 3, new System.Drawing.Size(40, 40));
foreach (Rectangle face in faces)
{
CvInvoke.Rectangle(image2, face, new Bgr(Color.Red).MCvScalar, 2); //在检测到的区域绘制红框
}
imageBox2.Image = image2;
for (i = 0; i < faces.Length; i++)
{
if (faces[i].Height * faces[i].Width > temp)
{
largestFaceRect = faces[i];
temp = faces[i].Height * faces[i].Width;
}
}
if (largestFaceRect == null)
continue;
else
{
try
{
temp = largestFaceRect.Width / 8;
largestFaceRect.X = largestFaceRect.X + temp;
largestFaceRect.Width = largestFaceRect.Width - 3 * temp / 2;
largestFaceRect.Height = largestFaceRect.Height / 2;
largestFaceRect.Y = largestFaceRect.Y + largestFaceRect.Height / 2;
largestFaceRect.Height = largestFaceRect.Height / 2;
CvInvoke.cvSetImageROI(image1.Ptr, largestFaceRect);
faceImg = new Image<Gray,Byte>(image1.Width,image.Height);
refaceImg =new Image<Gray,Byte>(image1.Width,image.Height);
CvInvoke.cvCopy(image1.Ptr, faceImg.Ptr, IntPtr.Zero);
CvInvoke.cvCopy(faceImg.Ptr, refaceImg.Ptr, IntPtr.Zero);
imageBox3.Image = refaceImg;
}
catch (Emgu.CV.Util.CvException) { Console.WriteLine(11.ToString(),"aa"); };