C#使用emgu库,但总是出现System.TypeInitializationException的错误。

问题描述 投票:0回答:1

我使用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;
            }

        }
    }
}
c# opencv emgucv
1个回答
0
投票

请使用调试和检查这一行(picture.Image = Image.FromFile(ofd.FileName);)来知道你选择的文件是否为空。

给更多的细节。

© www.soinside.com 2019 - 2024. All rights reserved.