ホームページ  >  記事  >  バックエンド開発  >  OpenCV を使用して IP カメラからフレームをキャプチャするにはどうすればよいですか?

OpenCV を使用して IP カメラからフレームをキャプチャするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 17:45:02636ブラウズ

How can I capture frames from IP cameras with OpenCV?

OpenCV を使用した IP カメラからのフレームのキャプチャ

OpenCV を使用して IP カメラからフレームをキャプチャするには、次の手順を実行できます。

  1. 必要なライブラリを含めます:

    • OpenCV バージョン 2.0 以降の場合:

      • # include "cv.h"
      • #include "highgui.h"
    • 古いバージョンの OpenCV (例: 1.1pre1) の場合:

      • #include "cv.h"
      • #include "highgui.h"
  2. 開くビデオ ストリーム:

    • cv::VideoCapture を使用してビデオ ストリームを開きます。例:

      • cv::VideoCapture vcap("rtsp://cam_address:554/live.sdp"); // RTSP ストリーム
      • cv::VideoCapture vcap("http://user:pass@cam_address:8081/cgi/mjpg/mjpg.cgi?.mjpg"); // MJPEG ストリーム
  3. フレームの読み取り:

    • vcap.read(image) を使用フレームを cv::Mat イメージに読み込みます。
  4. フレームの表示:

    • cv を使用して出力ウィンドウを作成します::namedWindow("出力ウィンドウ").
    • cv::imshow("出力ウィンドウ", image) を使用してフレームを表示します。
  5. ユーザー操作の処理:

    • cv::waitKey() を使用して、ユーザー入力または指定された時間間隔を待ちます。

OpenCV 2.0 のコード例:

#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";  // RTSP stream

    // Open the video stream and check if it's open
    if (!vcap.open(videoStreamAddress)) {
        std::cout << "Error opening video stream or file" << std::endl;
        return -1;
    }

    // Create output window for displaying frames.
    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;
    }

    return 0;
}

H.264 RTSP ストリームの更新:

次のコマンドを使用して H.264 RTSP ストリームからフレームをキャプチャするにはOpenCV 2.0 以降では、次の URL 形式を使用できます:

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

カメラには認証が必要です。次の URL 形式を使用します:

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

以上がOpenCV を使用して IP カメラからフレームをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。