Maison > développement back-end > C++ > Comment OpenCV peut-il être utilisé pour accéder aux images des caméras réseau ?

Comment OpenCV peut-il être utilisé pour accéder aux images des caméras réseau ?

Barbara Streisand
Libérer: 2024-11-09 13:11:02
original
628 Les gens l'ont consulté

How Can OpenCV Be Used to Access Frames from Network Cameras?

OpenCV avec les caméras réseau : un guide complet

Lorsque vous travaillez avec des caméras réseau, l'accès aux données d'image pour les tâches de traitement et d'analyse d'images devient souvent crucial . Cet article explique comment utiliser OpenCV, une puissante bibliothèque de vision par ordinateur, pour récupérer efficacement les images des caméras réseau.

Relever le défi

Un utilisateur a demandé comment acquérir des images à partir de une caméra réseau utilisant OpenCV 1.1pre1. La caméra diffusait du MPEG4 sur RTSP ou du MJPEG sur HTTP. Malgré des recherches approfondies, l'utilisateur a rencontré des difficultés pour utiliser FFMPEG avec OpenCV.

La solution OpenCV

Pour les versions OpenCV 2.0 et supérieures, un extrait de code C est fourni ci-dessous pour récupérer les images de la caméra réseau :

#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"; 

    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

Dans le code, videoStreamAddress peut être une adresse de flux MJPEG comme "http://user:pass@cam_address:8081/cgi/mjpg/mjpg.cgi?. mjpg".

Pour récupérer des images à partir de flux RTSP H.264, reportez-vous à l'API de votre caméra pour plus de détails sur les commandes URL spécifiques. Par exemple, l'adresse RTSP d'une caméra réseau Axis pourrait être :

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

Cette solution exploite la structure cv::Mat, privilégiée par rapport à l'ancienne structure IplImage. Le code crée une fenêtre de sortie pour l'affichage des images, évitant ainsi la création de fenêtre inefficace à chaque appel imshow(...) .

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!

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