2016-04-28 2 views
0

Я кодирую приложение WindowsForm на C# с помощью openCV. Я хочу захватить видео с веб-камеры и показать его в окне, и я хочу сделать это с помощью P/Invoke, у меня есть код C++, но я не могу это сделать в C#.Захват видео с помощью opencv с помощью Pinovke в C#

#include "opencv2/opencv.hpp" 
using namespace cv; 
int main(int, char**) 
{ 
VideoCapture cap(0); // open the default camera 
if(!cap.isOpened()) // check if we succeeded 
    return -1; 

Mat edges; 
namedWindow("edges",1); 
for(;;) 
{ 
    Mat frame; 
    cap >> frame; // get a new frame from camera 
    cvtColor(frame, edges, COLOR_BGR2GRAY); 
    GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5); 
    Canny(edges, edges, 0, 30, 3); 
    imshow("edges", edges); 
    if(waitKey(30) >= 0) break; 
} 
// the camera will be deinitialized automatically in VideoCapture destructor 
return 0; 
} 

я нашел ссылку на GitHub, который будет обнаруживать лицо от изображения Face Detect

точно так же, как я хочу захватить видео с эталонным webcam.any ссылка будет полезно.?

ответ

0
#region cameracapture 
    if (comboBox1.Text == "Capture From Camera") 
    { 
    try 
    { 
     _capture = null; 
     _capture = new Capture(0); 
     _capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FPS, 30); 
     _capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, 240); 
     _capture.SetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, 320); 
     Time_Label.Text = "Time: "; 
     Codec_lbl.Text = "Codec: "; 
     Frame_lbl.Text = "Frame: "; 
     webcam_frm_cnt = 0; 
     cam = 1; 
     Video_seek.Value = 0; 
     Application.Idle += ProcessFrame; 
     button1.Text = "Stop"; 
     comboBox1.Enabled = false; 
    } 
    catch (NullReferenceException excpt) 
    { 
     MessageBox.Show(excpt.Message); 
    } 
    } 
#endregion cameracapture 

Источник: Codeproject

+0

я не хочу использовать Emgucv я хочу, чтобы получить его через OpenCV –

Смежные вопросы