C# OpenCV and EmguCV

C# EmguCV 객체 감지와 추적

macroo 2023. 5. 23. 09:29

C# EmguCV 객체 감지와 추적

using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;

public void DetectAndTrackObjects()
{
    // 동영상 로딩
    VideoCapture capture = new VideoCapture("video.mp4");

    // Cascade Classifier 로드
    CascadeClassifier faceCascade = new CascadeClassifier("haarcascade_frontalface_default.xml");

    while (true)
    {
        // 프레임 읽기
        Mat frame = capture.QueryFrame();
        if (frame == null)
            break;

        // 객체 감지
        var faces = faceCascade.DetectMultiScale(frame, 1.1, 3, Size.Empty);

        // 감지된 객체 표시
        foreach (var face in faces)
            CvInvoke.Rectangle(frame, face, new Bgr(0, 255, 0).MCvScalar, 2);

        // 추적된 프레임 표시
        ImageViewer viewer = new ImageViewer(frame, "Detected Objects");
        viewer.ShowDialog();
    }

    capture.Dispose();
}