背景:

近期想在嵌入式平台上开发QT+Opencv,无料PC机上编写的OpenCV程序老是打不开视频。

開始提示:OpenCV Error: Bad argument (Array should be CvMat or IplImage) in cvGetSize

可是没实用错。考虑到可能没有打开视频,以作为cvGetSize的參数。

曾经程序执行没有问题。近期电脑进行了一些FFMPEG/ZLIB等的交叉编译。就不能执行了。

解决方法:

网上搜索,发现是由于ffmpeg没有编译到opencv里。于是參照http://blog.csdn.net/tinyway/article/details/9088985进行又一次编译,攻克了问题。

总结例如以下:

PC:Ubuntu12.04LTS  OpenCV2.4.3

OpenCV成功编译安装。进而编译算法,也成功编译生成二进制文件,可是执行时候cvCreateFileCapture无法读入视频。终于原因在于ffmpeg没有配置好。删除OpenCV和ffmpeg又一次编译ffmpeg和OpenCV后。视频读入成功。

ffmpeg安装

源代码下载 : svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg(假设没有安装svn。依据提示安装)

安         装: yasm:sudo apt-get install yasm

文件配置 : ./configure --enable-shared --enable-gpl --enable-swscale

编译安装 : make ;sudo make install

然后进行OpenCV安装,安装与使用具体过程參见:http://blog.csdn.net/guo8113/article/details/29211041

以下也给出了简要过程:

OpenCV2.4.4的安装

tar -jxvf OpenCV-2.4.3.tar.bz2

cd OpenCV-2.4.3/

mkdir release

cd release

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..

(这一步,就在这一步之后,会显示是否成功配置ffmpeg,若出现例如以下,则表示配置成功,相反。之前的失败是由于配置都为0(或者false),详细例如以下:

FFMPEG:1

codec:
1

format:  1

util: 1

swscale:1

gentoo-style:  1

)

$make

$sudo make install

$sudo ldconfig

Linux OpenCV读取视频失败,cvCreateFileCapture失败的解决的更多相关文章

  1. opencv 读取视频内容写入图片帧

    现在主要把自己平时用到的opencv功能记录到博客,一方面方便自己有时间来回顾,另一方便提供给大家一个参考. opencv 读取视频内容,把视频帧每一帧写成图片,存入电脑中.这个步骤是许多数据处理的基 ...

  2. 【计算机视觉】OpenCV读取视频获取时间戳等信息(PS:经测试并不是时间戳,与FFMPEG时间戳不一样)

    OpenCV中通过VideoCaptrue类对视频进行读取操作以及调用摄像头,下面是该类的API. 1.VideoCapture类的构造函数: C++: VideoCapture::VideoCapt ...

  3. Opencv读取视频

    CvCapture 是一个结构体,用来保存图像捕获所需要的信息. opencv提供两种方式从外部捕获图像 一种是从摄像头中, 一种是通过解码视频得到图像. 两种方式都必须从第一帧开始一帧一帧的按顺序获 ...

  4. Opencv读取视频一闪而过情况分析

    在参加一个软件比赛需要用opencv对视频的处理,也碰到了一些问题. 最常见的就是视频一闪而过了,在网上查了好久都没解决, 最后重装在配置环境变量时发现的. 现在我来终结一下估计是比较全的了. 先说明 ...

  5. C/C++ OpenCV读取视频与调用摄像头

    原文:http://blog.csdn.net/qq78442761/article/details/54173104 OpenCV通过VideoCapture类,来对视频进行读取,调用摄像头 读取视 ...

  6. python+opencv读取视频,调用摄像头

    引用 import cv2 import numpy 创建摄像头对象 cap = cv2.VideoCapture("videoTest/test1.mp4") #参数为视频文件目 ...

  7. OpenCV 读取视频 多种方式

    OpenCV中常见的视频方式是while循环读取,可是,当遇到嵌套循环呢 1.常见的while循环 ,没有嵌套循环 cv::VideoCapture capture("d:/test/dem ...

  8. C++ 调用 opencv 读取视频文件列表并处理

    //g++ trans_video.cpp -o trans_video `pkg-config opencv --libs --cflags` -L/usr/lib/x86_64-linux-gnu ...

  9. OpenCV3读取视频或摄像头

    我们可以利用OpenCV读取视频文件或者摄像头的数据,将其保存为图像,以用于后期处理.下面的实例代码展示了简单的读取和显示操作: // This is a demo introduces you to ...

随机推荐

  1. LNMP下基于端口的虚拟主机配置

    1.在/usr/local/nginx/conf/nginx.conf文件的的最后一个"}"前加上 include vhost/*.conf; 2.在/usr/local/ngin ...

  2. 如何解决JavaWeb乱码问题

    作为一个合格的web开发人员应该是什么问题都遇到过的,尤其是乱码问题.大家也许都体会到了,我们中国人学编程,很大的一个不便就是程序的编码问题,无论学习什么技术,我们都需要探讨他的编码问题. 今天来讲一 ...

  3. poj 2480 Longge's problem

    /** 大意: 计算f(n) = ∑ gcd(i, N) 1<=i <=N. 思路: gcd(i,x*y) = gcd(i,x) * gcd(i, y ) 所以gcd 为积性函数 又因为积 ...

  4. linux操作系统死机处理办法

    这个方法可以在各种情况下安全地重启计算机.大家在键盘上找,可以找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete.以台机为例,要使用这 ...

  5. 操作数组的工具类Arrays

    Java提供的Arrays类里包含一些static修饰的方法可以直接操作数组. int binarySearch(type[] a, type key)使用二分法查询key元素值在a数组中出现的索引, ...

  6. Eclipse中DTD验证导致无法进行代码提示的问题(转)

    eclipse的xml插件进行dtd验证的时候由于找不到dtd或请求主机相应超时,会出现黄色的警告 The file cannot be validated as the host "www ...

  7. FPGA知识大梳理(三)verilogHDL语法入门(2)知识汇总

    1,时序逻辑.将上次的练习修改成时序逻辑会如何设计. always @ (posedge clock) 2,block 与unblocking  A,有clock的always中通常使用nonbloc ...

  8. js中的一元运算符

    一元运算符只有一个参数,即要操作的对象或值.它们是 ECMAScript 中最简单的运算符. delete delete 运算符删除对以前定义的对象属性或方法的引用.例如: var o = new O ...

  9. 基于visual Studio2013解决C语言竞赛题之0408素数

      题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...

  10. strut2服务器与android交互数据

    libs如图: web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app versio ...