小编Saw*_*awi的帖子

c,opencv - 通过ip访问相机JPG图像

OpenCV 2.3.1中,我已经阅读了许多关于通过IP流式传输图像的线程,但我仍然无法使我的程序工作.

我从https://market.android.com/details?id=com.pas.webcam&hl=en下载了适用于Android的IP网络摄像头,最近学习了OpenCV以从我的Android手机摄像头中检索图像.

它的内置手册说,手机摄像头的图像可以位于http://the.phone.ip.address:8080/shot.jpg.我已经多次从浏览器打开它,它看起来总是很好.我还用FFmpeg手动构建了OpenCV支持.

到目前为止我已经尝试过了

CvCapture* webcam = cvCaptureFromFile("http://192.168.1.220:8080/shot.jpg");
Run Code Online (Sandbox Code Playgroud)

但它返回NULL并输出

[image2 @ 0xd701e0]Could not find codec parameters (Video: mjpeg, yuv420p)
Run Code Online (Sandbox Code Playgroud)

我也尝试用rtsp替换http,但它仍然不起作用.我还试图用其他图像网址(一个直接链接到谷歌图像的随机图像,一个来自localhost)替换网址,它总是杀死一个段错误.

这是我的完整资料来源

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>

int main(int argc, char* argv[])
{ 
  CvCapture* webcam = cvCaptureFromFile("http://192.168.1.220:8080/shot.jpg");
  if(!webcam)
    {
      fprintf(stderr, "cannot open webcam\n");
      return 1;
    }

  IplImage* img = cvQueryFrame(webcam);
  if(!img)
    {
      fprintf(stderr, "cannot get image\n");
      return 1;
    }

  cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
  cvShowImage("test", img); …
Run Code Online (Sandbox Code Playgroud)

c opencv

6
推荐指数
1
解决办法
4914
查看次数

标签 统计

c ×1

opencv ×1