2013-08-18 134 views
0

我有一個攝像頭連接到我的筆記本電腦之一。相機由Yawcam運行。它以192.168.1.6:80流式傳輸視頻,192.168.1.6:8888傳輸http視頻。Python OpenCV和媒體流

從另一臺筆記本電腦上,我可以在瀏覽器中打開這些頁面並查看這些流式視頻。 但我想捕獲這些視頻,以使用openCV和python進行圖像處理。 我嘗試下面的代碼

import cv2.cv as cv 

    cv.NamedWindow("camera", 1) 
    capture = cv.CaptureFromCAM("http://192.168.1.6:80"); 
    while True: 
     img = cv.QueryFrame(capture) 
     cv.ShowImage("camera", img) 
     if cv.WaitKey(10) == 27: 
      break 
    cv.DestroyWindow("camera") 

但有運行過程中出現錯誤 - 類型錯誤:需要一個整數。 如果我用0替換IP地址,程序運行。 有什麼方法可以用openCV獲取視頻流嗎?

回答

1

的IP攝像機的解決方案是:

你只需要在Python

最重要的改寫: 使用VideoCapture對象和open()方法。

#include <opencv2/opencv.hpp> 
int main(void) 
{ 
    cv::VideoCapture camera; 
    camera.open("http://204.248.124.202/mjpg/video.mjpg"); 
    if (camera.isOpened()==true) 
    { 
     cv::namedWindow("camera"); 
     int key = 0; 
     while (key != 27) 
     { 
      cv::Mat_<cv::Vec3b> image;   
      camera.grab(); 
      camera.retrieve(image); 
      cv::imshow("camera",image); 
      key = cv::waitKey(10); 
     } 
    } 
} 
+0

我不明白你的代碼的一個地方 - camera.open(「http://204.248.124.202/mjpg/video.mjpg」); 從哪裏得到/mjpg/video.mjpg ??我也沒有使用IP攝像頭。我的相機連接到一臺筆記本電腦192.168.1.6,它是在端口86流視頻。我將如何接近呢?我在Windows 7上 –