2013-08-18 91 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上 –