使用 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中文網其他相關文章!