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
695 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!

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