Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menangkap Bingkai dari Kamera Rangkaian menggunakan OpenCV?

Bagaimana untuk Menangkap Bingkai dari Kamera Rangkaian menggunakan OpenCV?

Barbara Streisand
Lepaskan: 2024-11-09 08:24:02
asal
803 orang telah melayarinya

How to Capture Frames from Network Cameras using OpenCV?

Mengantaramuka dengan Kamera Rangkaian menggunakan OpenCV

Dalam bidang penglihatan komputer, pemerolehan imej masa nyata selalunya merupakan keperluan penting. Kamera rangkaian, menstrim kandungan video melalui pelbagai protokol, menawarkan cara yang mudah untuk mendapatkan imej. OpenCV, perpustakaan penglihatan komputer yang digunakan secara meluas, menyediakan keupayaan untuk menangkap bingkai daripada kamera sedemikian.

Pendekatan Pelaksanaan

OpenCV versi 2.0 dan ke atas menawarkan penyelesaian serba boleh untuk antara muka dengan kamera rangkaian. Kod C berikut menunjukkan cara untuk mencapai ini:

#include <cv.h>
#include <highgui.h>
#include <iostream>

int main(int, char**) {
    cv::VideoCapture vcap;
    cv::Mat image;

    // TODO: Replace with appropriate stream address
    const std::string videoStreamAddress = "rtsp://cam_address:554/live.sdp"; 

    vcap.open(videoStreamAddress);
    if (!vcap.isOpened()) {
        std::cout << "Failed to open video stream." << std::endl;
        return -1;
    }

    cv::namedWindow("Output Window");

    while (true) {
        vcap >> image;
        if (image.empty()) {
            std::cout << "No frame available." << std::endl;
            cv::waitKey(0);
            continue;
        }

        cv::imshow("Output Window", image);
        if (cv::waitKey(1) >= 0) break;
    }

    return 0;
}
Salin selepas log masuk

Pertimbangan Penstriman H.264

Banyak kamera rangkaian moden menyokong pemampatan video H.264, yang memerlukan pengubahsuaian URL RTSP untuk penyepaduan yang betul dengan OpenCV. Rujuk dokumentasi API kamera untuk format URL tertentu. Contohnya, yang berikut menunjukkan alamat RTSP untuk kamera rangkaian Axis:

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

di mana "10.10.10.10" mewakili alamat IP kamera dan "554" port RTSPnya.

Oleh menggabungkan kod yang disediakan dan mempertimbangkan pertimbangan penstriman H.264 ini, anda boleh menangkap bingkai dengan berkesan daripada kamera rangkaian menggunakan OpenCV, membuka kunci rangkaian luas pemprosesan imej dan aplikasi penglihatan komputer.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Bingkai dari Kamera Rangkaian menggunakan OpenCV?. 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