Bagaimanakah OpenCV Boleh Digunakan untuk Mengakses Bingkai daripada Kamera Rangkaian?

Barbara Streisand
Lepaskan: 2024-11-09 13:11:02
asal
514 orang telah melayarinya

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

OpenCV dengan Kamera Rangkaian: Panduan Komprehensif

Apabila bekerja dengan kamera rangkaian, mengakses data bingkai untuk pemprosesan imej dan tugasan analisis sering menjadi penting . Artikel ini meneroka cara menggunakan OpenCV, pustaka penglihatan komputer yang berkuasa, untuk merebut bingkai daripada kamera rangkaian dengan berkesan.

Menangani Cabaran

Seorang pengguna bertanya tentang memperoleh bingkai daripada kamera rangkaian menggunakan OpenCV 1.1pre1. Kamera menstrim MPEG4 melalui RTSP atau MJPEG melalui HTTP. Walaupun penyelidikan yang meluas, pengguna menghadapi kesukaran dalam menggunakan FFMPEG dengan OpenCV.

Penyelesaian OpenCV

Untuk OpenCV versi 2.0 dan ke atas, coretan kod C disediakan di bawah untuk dapatkan semula bingkai daripada kamera rangkaian:

#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;
    }   
}
Salin selepas log masuk

Dalam kod, videoStreamAddress boleh menjadi alamat strim MJPEG seperti "http://user:pass@cam_address:8081/cgi/mjpg/mjpg.cgi?.mjpg".

Untuk mengambil bingkai daripada strim H.264 RTSP, rujuk ke API kamera anda untuk butiran arahan URL tertentu. Contohnya, alamat RTSP kamera rangkaian Axis mungkin:

rtsp://10.10.10.10:554/axis-media/media.amp
Salin selepas log masuk

Penyelesaian ini memanfaatkan struktur cv::Mat, yang diutamakan berbanding struktur IplImage lama. Kod ini mencipta tetingkap output untuk paparan bingkai, mengelakkan penciptaan tetingkap yang tidak cekap dengan setiap panggilan imshow(...).

Atas ialah kandungan terperinci Bagaimanakah OpenCV Boleh Digunakan untuk Mengakses Bingkai daripada Kamera Rangkaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan