Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erfasst man Frames von Netzwerkkameras mit OpenCV?

Wie erfasst man Frames von Netzwerkkameras mit OpenCV?

Barbara Streisand
Barbara StreisandOriginal
2024-11-09 08:24:02772Durchsuche

How to Capture Frames from Network Cameras using OpenCV?

Schnittstelle mit Netzwerkkameras über OpenCV

Im Bereich Computer Vision ist die Bilderfassung in Echtzeit oft eine entscheidende Anforderung. Netzwerkkameras, die Videoinhalte über verschiedene Protokolle streamen, bieten eine praktische Möglichkeit, Bilder zu erhalten. OpenCV, eine weit verbreitete Computer-Vision-Bibliothek, bietet Funktionen zum Erfassen von Bildern von solchen Kameras.

Implementierungsansatz

OpenCV Version 2.0 und höher bietet eine vielseitige Lösung für die Schnittstelle mit Netzwerkkameras. Der folgende C-Code zeigt, wie dies erreicht wird:

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

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

    // TODO: Replace with appropriate stream address
    const std::string videoStreamAddress = "rtsp://cam_address:554/live.sdp"; 

    vcap.open(videoStreamAddress);
    if (!vcap.isOpened()) {
        std::cout << "Failed to open video stream." << std::endl;
        return -1;
    }

    cv::namedWindow("Output Window");

    while (true) {
        vcap >> image;
        if (image.empty()) {
            std::cout << "No frame available." << std::endl;
            cv::waitKey(0);
            continue;
        }

        cv::imshow("Output Window", image);
        if (cv::waitKey(1) >= 0) break;
    }

    return 0;
}

Überlegungen zum H.264-Streaming

Viele moderne Netzwerkkameras unterstützen die H.264-Videokomprimierung, was eine Modifikation erfordert RTSP-URL für die ordnungsgemäße Integration mit OpenCV. Informationen zu bestimmten URL-Formaten finden Sie in der API-Dokumentation der Kamera. Das Folgende veranschaulicht beispielsweise eine RTSP-Adresse für eine Axis-Netzwerkkamera:

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

wobei „10.10.10.10“ die IP-Adresse der Kamera und „554“ deren RTSP-Port darstellt.

Von Durch die Einbindung des bereitgestellten Codes und unter Berücksichtigung dieser H.264-Streaming-Überlegungen können Sie mithilfe von OpenCV effektiv Frames von Netzwerkkameras erfassen und so eine Vielzahl von Funktionen freischalten Bildverarbeitungs- und Computer-Vision-Anwendungen.

Das obige ist der detaillierte Inhalt vonWie erfasst man Frames von Netzwerkkameras mit OpenCV?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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