> 백엔드 개발 > C++ > OpenCV를 사용하여 네트워크 카메라에서 프레임을 캡처하는 방법은 무엇입니까?

OpenCV를 사용하여 네트워크 카메라에서 프레임을 캡처하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-09 08:24:02
원래의
801명이 탐색했습니다.

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 설명서를 참조하세요. 예를 들어, 다음은 Axis 네트워크 카메라의 RTSP 주소를 보여줍니다.

rtsp://10.10.10.10:554/axis-media/media.amp
로그인 후 복사

여기서 "10.10.10.10"은 카메라의 IP 주소를 나타내고 "554"는 RTSP 포트를 나타냅니다.

By 제공된 코드를 통합하고 이러한 H.264 스트리밍 고려 사항을 고려하면 OpenCV를 사용하여 네트워크 카메라에서 프레임을 효과적으로 캡처하여 광범위한 이미지 처리 및 컴퓨터 비전 애플리케이션을 잠금 해제할 수 있습니다.

위 내용은 OpenCV를 사용하여 네트워크 카메라에서 프레임을 캡처하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿