im Allgemeinen liefern wir Webcam oder Video-Motion in opencv Fenster mit:OpenCV: Wie Webcam Capture in Windows-Formular-Anwendung anzeigen?
CvCapture* capture = cvCreateCameraCapture(0);
cvNamedWindow("title", CV_WINDOW_AUTOSIZE);
cvMoveWindow("title",x,y);
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)
{
break;
}
cvShowImage("title", frame);
char c = cvWaitKey(33);
if(c == 27)
{
break;
}
}
ich versuchte PictureBox zu verwenden, die erfolgreich Bild anzuzeigen mit dieser in den Fenstern bilden:
pictureBox1->Image = gcnew System::Drawing::Bitmap(image->width,image->height,image->widthStep,System::Drawing::Imaging::PixelFormat::Undefined, (System::IntPtr) image-> imageData);
aber wenn im Versuch zu aufgenommenes Bild von Video-anzeigen werden nicht funktioniert es, hier ist die Quelle:
CvCapture* capture = cvCreateCameraCapture(0);
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)
{
break;
}
pictureBox1->Image = gcnew System::Drawing::Bitmap(frame->width,frame->height,frame->widthStep,System::Drawing::Imaging::PixelFormat::Undefined, (System::IntPtr) frame-> imageData);
char c = cvWaitKey(33);
if(c == 27)
{
break;
}
}
ist es trotzdem Fenster Form statt opencv Fenster zu verwenden s um Video oder Webcam zu zeigen?
oder stimmt etwas mit meinem Code nicht? danke für Ihre Hilfe .. :)
Beeinflusst die simultane Videoausgabe und die Hintergrundbildverarbeitung der gleichen Informationen die Leistung erheblich? –
Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstanden habe. Soweit ich mich erinnere, wird das aufgenommene Bild nicht direkt in den Bildschirmpuffer kopiert. VideoInput basiert jedoch auf DirectShow, was zwei Dinge impliziert: Es ist wirklich schnell und es ist ein PITA zu kompilieren (Sie müssen die entsprechende DirectShow-Implementierung von Microsoft bekommen). Das letzte Mal, als ich es versuchte, musste ich eine ältere Version der DirectShow-Bibliothek bekommen. Eine kompilierte Version der VideoInput-Bibliothek wird jedoch im Download bereitgestellt. –