首頁 > 後端開發 > C++ > 如何使用 OpenCV 從網路攝影機擷取影格?

如何使用 OpenCV 從網路攝影機擷取影格?

Barbara Streisand
發布: 2024-11-09 08:24:02
原創
802 人瀏覽過

How to Capture Frames from Network Cameras using OpenCV?

使用 OpenCV 與網路攝影機連接

在電腦視覺領域,即時影像擷取通常是至關重要的要求。網路攝影機透過各種協定串流視訊內容,提供了一種獲取影像的便捷方法。 OpenCV 是一個廣泛使用的電腦視覺庫,提供從此類相機捕捉幀的功能。

實作方法

OpenCV 2.0 及更高版本提供了通用的介面解決方案與網路攝影機。以下C 程式碼示範如何實現此目的:

#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;
}
登入後複製

H.264 串流注意事項

許多現代網路攝影機支援H.264 視訊壓縮,需要修改用於與OpenCV 正確整合的RTSP URL。有關特定 URL 格式,請參閱相機的 API 文件。例如,以下範例是安訊士網路攝影機的 RTSP 位址:

rtsp://10.10.10.10:554/axis-media/media.amp
登入後複製

其中「10.10.10.10」代表攝影機的 IP 位址,「554」代表其 RTSP 連接埠。

透過結合提供的程式碼並考慮這些 H.264 串流注意事項,您可以使用 OpenCV 有效地從網路攝影機擷取幀,從而解鎖廣泛的影像處理和電腦視覺應用。

以上是如何使用 OpenCV 從網路攝影機擷取影格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板