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
575 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!

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