Heim > Backend-Entwicklung > C++ > Wie kann ich mit OpenCV Bilder von IP-Kameras erfassen?

Wie kann ich mit OpenCV Bilder von IP-Kameras erfassen?

Mary-Kate Olsen
Freigeben: 2024-11-09 17:45:02
Original
697 Leute haben es durchsucht

How can I capture frames from IP cameras with OpenCV?

Frames von IP-Kameras mit OpenCV erfassen

Um Frames von einer IP-Kamera mit OpenCV zu erfassen, können Sie die folgenden Schritte ausführen:

  1. Die erforderlichen Bibliotheken einschließen:

    • Für OpenCV Version 2.0 oder höher:

      • # include „cv.h“
      • #include „highgui.h“
    • Für ältere Versionen von OpenCV (z. B. 1.1pre1):

      • #include "cv.h"
      • #include "highgui.h"
  2. Öffnen der Videostream:

    • Verwenden Sie cv::VideoCapture, um den Videostream zu öffnen. Zum Beispiel:

      • cv::VideoCapture vcap("rtsp://cam_address:554/live.sdp"); // RTSP-Stream
      • cv::VideoCapture vcap("http://user:pass@cam_address:8081/cgi/mjpg/mjpg.cgi?.mjpg"); // MJPEG-Stream
  3. Frames lesen:

    • Verwenden Sie vcap.read(image) um Frames in ein cv::Mat-Bild einzulesen.
  4. Frames anzeigen:

    • Erstellen Sie ein Ausgabefenster mit cv ::namedWindow("Ausgabefenster").
    • Frames mit cv::imshow("Ausgabefenster", Bild) anzeigen.
  5. Benutzerinteraktion verarbeiten:

    • Verwenden Sie cv::waitKey(), um auf Benutzereingaben oder ein bestimmtes Zeitintervall zu warten.

Beispielcode für OpenCV 2.0:

#include "cv.h"
#include "highgui.h"
#include <iostream>

int main(int, char**) {
    cv::VideoCapture vcap;
    cv::Mat image;

    const std::string videoStreamAddress = "rtsp://cam_address:554/live.sdp";  // RTSP stream

    // Open the video stream and check if it's open
    if (!vcap.open(videoStreamAddress)) {
        std::cout << "Error opening video stream or file" << std::endl;
        return -1;
    }

    // Create output window for displaying frames.
    cv::namedWindow("Output Window");

    for (;;) {
        if (!vcap.read(image)) {
            std::cout << "No frame" << std::endl;
            cv::waitKey();
        }
        cv::imshow("Output Window", image);
        if (cv::waitKey(1) >= 0) break;
    }

    return 0;
}
Nach dem Login kopieren

Update für H.264 RTSP-Streams:

Zum Erfassen von Frames aus H.264-RTSP-Streams mit OpenCV 2.0 oder höher können Sie das folgende URL-Format verwenden:

  • rtsp://10.10.10.10:554/axis-media/media.amp

Wenn die Für die Kamera ist eine Authentifizierung erforderlich. Verwenden Sie das folgende URL-Format:

  • rtsp://username:[email protected]:554/axis-media/media.amp

Das obige ist der detaillierte Inhalt vonWie kann ich mit OpenCV Bilder von IP-Kameras erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage