Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menangkap bingkai daripada kamera IP dengan OpenCV?

Bagaimanakah saya boleh menangkap bingkai daripada kamera IP dengan OpenCV?

Mary-Kate Olsen
Lepaskan: 2024-11-09 17:45:02
asal
729 orang telah melayarinya

How can I capture frames from IP cameras with OpenCV?

Merakam Bingkai daripada Kamera IP dengan OpenCV

Untuk menangkap bingkai daripada kamera IP menggunakan OpenCV, anda boleh menggunakan langkah berikut:

  1. Sertakan Yang Perlu Perpustakaan:

    • Untuk OpenCV versi 2.0 atau lebih tinggi:

      • #include "cv.h"
      • #include "highgui .h"
    • Untuk versi lama OpenCV (cth., 1.1pre1):

      • #include "cv.h"
      • #include "highgui.h"
  2. Buka Video Strim:

    • Gunakan cv::VideoCapture untuk membuka strim video. Contohnya:

      • cv::VideoCapture vcap("rtsp://cam_address:554/live.sdp"); // Strim RTSP
      • cv::VideoCapture vcap("http://user:pass@cam_address:8081/cgi/mjpg/mjpg.cgi?.mjpg"); // Strim MJPEG
  3. Baca Bingkai:

    • Gunakan vcap.read(imej) untuk membaca bingkai ke dalam cv::Mat imej.
  4. Bingkai Paparan:

    • Buat tetingkap output menggunakan cv::namedWindow("Tetingkap Output") .
    • Paparkan bingkai menggunakan cv::imshow("Tetingkap Output", imej).
  5. Kendalikan Interaksi Pengguna:

    • Gunakan cv::waitKey() untuk menunggu input pengguna atau masa yang ditentukan selang waktu.

Contoh Kod untuk 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;
}
Salin selepas log masuk

Kemas kini untuk H.264 RTSP Stream:

Untuk menangkap bingkai daripada strim H.264 RTSP dengan OpenCV 2.0 atau lebih tinggi, anda boleh menggunakan format URL berikut:

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

Jika kamera memerlukan pengesahan, gunakan format URL berikut:

  • rtsp://nama pengguna:[e-mel dilindungi]:554/axis-media/media.amp

Atas ialah kandungan terperinci Bagaimanakah saya boleh menangkap bingkai daripada kamera IP dengan OpenCV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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