Есть ли в любом случае поставить videoCapture (0) (из файла python) в C# пользовательский интерфейс - PullRequest
0 голосов
/ 01 апреля 2020

Я делаю проект о распознавании лиц. Я изучаю создание пользовательского интерфейса с помощью C# в Visual Studio 2019

Я хочу знать, как можно настроить вывод видео в реальном времени с videoCapture.py на C# пользовательский интерфейс

Вот код в videoCapture.py

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

Вот код пространства имен UI

namespace DropDownMenu
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            var menuReceptionist = new List<SubItem>();
            menuReceptionist.Add(new SubItem("Profiles", new UserControlAdd()));
            var item0 = new ItemMenu("Receptionist", menuReceptionist, PackIconKind.ViewDashboard);

            var menuAdmin = new List<SubItem>();
            menuAdmin.Add(new SubItem("Admins Profile", new UserControlAdmins()));
            menuAdmin.Add(new SubItem("Add Admin", new UserControlAdd()));
            var item1 = new ItemMenu("Administrations", menuAdmin, PackIconKind.FaceProfile);

            var menuPreprocess = new List<SubItem>();
            menuPreprocess.Add(new SubItem("New Data", new UserControlAdmins()));
            var item2 = new ItemMenu("Data PreProcessing", menuPreprocess, PackIconKind.Schedule);

            Menu.Children.Add(new UserControlMenuItem(item0, this));
            Menu.Children.Add(new UserControlMenuItem(item1, this));
            Menu.Children.Add(new UserControlMenuItem(item2, this));
        }

        internal void SwitchScreen(object sender)
        {
            var screen = ((UserControl)sender);

            if(screen!=null)
            {
                StackPanelMain.Children.Clear();
                StackPanelMain.Children.Add(screen);
            }
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Window1 win1 = new Window1();
            win1.Show();
            this.Close();
        }
    }
}

Если я что-то не так делаю, заранее прошу прощения. Это моя первая публикация в Stackoverflow

Ответы [ 2 ]

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

Просто

//add library 
using Emgu.CV;

// in your code 

VideoCapture _videoCapture = new VideoCapture ();

// to process frames
Application.Idle += ProcessFrame ; // you should create this function

Вот и я сделал видео, чтобы в простом коде объяснить, как распознавать и распознавать лица

Вы можете проверить это видео https://www.youtube.com/watch?v=KEpSdKoyhs0

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

Вам необходимо запустить скрипт python из c#, что можно сделать несколькими способами. Вот статья, объясняющая процесс:

Запуск Python Скрипт из C# и работа с результатами

...