Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengintegrasikan OpenCV dengan Kamera Rangkaian untuk Menangkap Bingkai?

Bagaimana untuk Mengintegrasikan OpenCV dengan Kamera Rangkaian untuk Menangkap Bingkai?

Susan Sarandon
Susan Sarandonasal
2024-11-14 22:03:02429semak imbas

How to Integrate OpenCV with Network Cameras to Capture Frames?

Mengintegrasikan OpenCV dengan Kamera Rangkaian

OpenCV, sebuah perpustakaan penglihatan komputer yang dihormati, menawarkan alatan yang mantap untuk menangkap dan memproses video. Fleksibilitinya meluas ke kamera rangkaian, membolehkan pembangun memanfaatkan kuasa kamera yang disambungkan melalui protokol RTSP atau HTTP.

Dalam Windows, pengguna yang menggunakan OpenCV 1.1pre1 mungkin menghadapi cabaran apabila cuba menangkap bingkai daripada kamera IP. Artikel ini berfungsi sebagai panduan, menyediakan penyelesaian untuk memudahkan penyepaduan OpenCV yang lancar dengan kamera rangkaian.

Merakam Bingkai daripada Kamera IP Menggunakan OpenCV

Untuk mewujudkan sambungan dengan kamera IP dan mendapatkan semula bingkai, kami menyelidiki keupayaan menangkap video lanjutan OpenCV. Berikut ialah contoh kod komprehensif menggunakan OpenCV 2.0 atau lebih baru:

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

Kod ini menggunakan kelas cv::VideoCapture untuk mewujudkan sambungan ke kamera menggunakan alamat strim video yang ditentukan. Ia kemudiannya membaca bingkai dari kamera secara berterusan dan memaparkannya dalam tetingkap berlabel "Tetingkap Output."

Sokongan Strim H.264 RTSP

Selain itu, OpenCV menyokong menangkap bingkai daripada aliran H.264 RTSP. Rujuk API kamera anda untuk arahan URL tertentu. Sebagai contoh, kamera rangkaian Axis boleh menggunakan alamat RTSP berikut:

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

Sebagai alternatif, untuk kamera yang dilindungi kata laluan, alamatnya ialah:

rtsp://username:[email protected]:554/axis-media/media.amp

Sebagai kesimpulan, memanfaatkan OpenCV's keupayaan, pembangun boleh dengan mudah menyepadukan kamera rangkaian ke dalam aplikasi mereka, membuka kunci pelbagai kemungkinan dalam bidang penglihatan komputer dan analitik video.

Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan OpenCV dengan Kamera Rangkaian untuk Menangkap Bingkai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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