C# с использованием библиотеки emgu, но всегда ошибка с System.TypeInitializationException - PullRequest
0 голосов
/ 19 апреля 2020

Я использовал библиотеку emgu версии 4.1.1.3479 и обнаружил эту ошибку «System.TypeInitializationException:» и внутреннее исключение как «CvException: OpenCV: входной файл пуст»

Пожалуйста, сообщите, как я могу передать эту ошибку.

enter image description here Ниже приведен код.

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;
            }

        }
    }
}

1 Ответ

0 голосов
/ 30 апреля 2020

используйте отладку и проверьте эту строку (picture.Image = Image.FromFile (ofd.FileName);), чтобы узнать, выбранный вами файл пуст или нет.

приведите более подробную информацию.

...