Maison > développement back-end > C++ > Comment intégrer OpenCV aux caméras réseau pour capturer des images ?

Comment intégrer OpenCV aux caméras réseau pour capturer des images ?

Susan Sarandon
Libérer: 2024-11-14 22:03:02
original
522 Les gens l'ont consulté

How to Integrate OpenCV with Network Cameras to Capture Frames?

Intégration d'OpenCV avec des caméras réseau

OpenCV, une bibliothèque de vision par ordinateur réputée, offre des outils robustes pour la capture et le traitement vidéo. Sa polyvalence s'étend aux caméras réseau, permettant aux développeurs d'exploiter la puissance des caméras connectées via les protocoles RTSP ou HTTP.

Sous Windows, les utilisateurs utilisant OpenCV 1.1pre1 peuvent rencontrer des difficultés lorsqu'ils tentent de capturer des images à partir de caméras IP. Cet article sert de guide et fournit une solution pour faciliter l'intégration transparente d'OpenCV avec les caméras réseau.

Capturer des images de caméras IP à l'aide d'OpenCV

Pour établir une connexion avec une caméra IP et récupérons des images, nous explorons les capacités avancées de capture vidéo d'OpenCV. Voici un exemple de code complet utilisant OpenCV 2.0 ou version ultérieure :

#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"; 
    /* mjpeg stream address: "http://user:pass@cam_address:8081/cgi/mjpg/mjpg.cgi?.mjpg" */

    if(!vcap.open(videoStreamAddress)) {
        std::cout << "Error opening video stream or file" << std::endl;
        return -1;
    }

    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;
    }   
}
Copier après la connexion

Ce code utilise la classe cv::VideoCapture pour établir une connexion à la caméra en utilisant l'adresse de flux vidéo spécifiée. Il lit ensuite en continu les images de la caméra et les affiche dans une fenêtre intitulée « Fenêtre de sortie ».

Prise en charge du flux RTSP H.264

De plus, OpenCV prend en charge la capture d'images. à partir de flux RTSP H.264. Reportez-vous à l'API de votre caméra pour connaître les commandes URL spécifiques. Par exemple, une caméra réseau Axis peut utiliser l'adresse RTSP suivante :

rtsp://10.10.10.10:554/axis-media/media.amp
Copier après la connexion

Alternativement, pour les caméras protégées par mot de passe, l'adresse serait :

rtsp://username:[email protected]:554/axis-media/media.amp
Copier après la connexion

En conclusion, tirer parti d'OpenCV Grâce à ces capacités, les développeurs peuvent intégrer sans effort des caméras réseau dans leurs applications, ouvrant ainsi un large éventail de possibilités dans le domaine de la vision par ordinateur et de l'analyse vidéo.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal