我使用emgu库4.1.1.3479版本,发现这个错误 "System.TypeInitializationException: ",内部异常为 "CvException: OpenCV: Input file is empty"
请教如何才能通过这个错误。
请在这里输入图片描述下面是代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.Structure;
namespace FaceDetection
{
public partial class Form1 : Form
{
static readonly CascadeClassifier cascadeClassifier = new CascadeClassifier("opencv_haarcascade_frontalface_alt2.xml");
public Form1()
{
InitializeComponent();
}
private void detectButton_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog() { Multiselect = false, Filter = "JPEG | *.jpg" })
{
picture.Image = Image.FromFile(ofd.FileName);
Bitmap bitmap = new Bitmap(picture.Image);
Image<Bgr, byte> grayImage = new Image<Bgr, byte>(bitmap);
Rectangle[] rectangles = cascadeClassifier.DetectMultiScale(grayImage, 1.4, 0);
foreach (Rectangle rectangle in rectangles)
{
using (Graphics graphics = Graphics.FromImage(bitmap))
{
using (Pen pen = new Pen(Color.Red, 1))
{
graphics.DrawRectangle(pen, rectangle);
}
}
}
picture.Image = bitmap;
}
}
}
}
请使用调试和检查这一行(picture.Image = Image.FromFile(ofd.FileName);)来知道你选择的文件是否为空。
给更多的细节。