Tegra TK1安装Opencv1.0

OpenCV的编译方式有两种:
1、传统的./configure ; make ; make install,这种方式适用于OpenCV1.0版本,相应的编译过程可以参见
这篇文章:http://www.opencv.org.cn/index.php/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91
2、使用cmake CMakeLists.txt; make ; make install,这种方式适用于OpenCV2.x版本。因此,在编译OpenCV2.X版本之前,需要 先在CentOS上安装CMake

然而在TK1上安装Opencv1.0仍有不同。我是按照如下方式安装。首先,仍是下载符合TK1系统版本的Tegra4OpenCV,并按照步骤正常安装:
1.1 基本的g++编译器和make

 sudo apt-get install build-essential make g++

1.2 输入输出库

    sudo apt-get install libavformat-dev libavutil-dev libswscale-dev

1.3 Video4Linux摄像头模块

    sudo apt-get install libv4l-dev 

1.4 GTK库函数

sudo apt-get install libgtk2.0-dev

2.官网下载下载 libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb**(注意版本!!)**
3.启用Universe源

sudo apt-add-repository universe
sudo apt-get update

4.安装Tegra4OpenCV

sudo dpkg -i libopencv4tegra-repo_l4t-r21_2.4.10.1_armhf.deb
sudo apt-get update
sudo apt-get install libopencv4tegra libopencv4tegra-dev

安装完Tegra4OpenCV后,安装opencv1.0:
引用https://en.wikibooks.org/wiki/SwisTrack/Developers/Setting_up_a_development_environment/Linux
1.解压源码

tar xfz opencv-1.0.0.tar.gz
cd opencv-1.0.0
./configure --prefix=/usr
make
sudo make install

编译中会出现的错误::

1)

../../cxcore/include/cxmisc.h:133:6: error: #elif with no expression
修改  cxmisc.h  133行  用 #else替换#elif  .

2)

../../../otherlibs/highgui/.libs/libhighgui.so: undefined reference to `cvCaptureFromCAM_V4L(int)'
在cvconfig.h  第24行添加 #define HAVE_CAMV4L (注:23行为#define HAVE_CAMV4L2)

3)

cvcap_v4l.cpp:208:28: fatal error: linux/videodev.h: No such file or directory 
安装libv4l-dev并链接:
sudo apt-get install libv4l-dev
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

上述步骤进行完之后,会发现/usr/lib里面既有opencv2.4.10的库也有opencv1.0的库,我手动删除了opencv2.4.10的库;然后/usr/include里面包含了opencv和opencv2,这个两个版本的opencv重叠了,我的选择是全部删除,然后又安装了一遍opencv1.0,还好中间没有出问题。
问题:用opencv1.0的函数写一些读取图片和视频的代码,编译不会报错,但是运行读取图片一直为空,这个问题困扰了很久。一直到在网上找到Ubuntu下安装opencv1.0的帖子。http://blog.sina.com.cn/s/blog_60b330b801012d01.html 。其中写到:如果你要使用OpenCV来编写程序,那么还需要安装libcv-dev,libcvaux-dev,libhighgui-dev包。

sudo apt-get install libcv-dev libcvaux-dev libhighgui-dev 

于是运行了一下上述代码,可以正常显示图片了。但是,仍然不能读入显示avi视频。用其自带播放器打开也报错:Video requires to install plugins to play media files of the following type: DivX MPEG-4 Version 3 decoder.感觉应该是没有DivX MPEG-4解码器的问题,但是用sudo apt-get install ffmpeg是不成功的。直接按照如下方式安装mpeg是不行的:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg

最后一句代码报错,找不到ffmpeg安装包。

放弃放弃,opencv1.0装上之后摄像头也打不开,./configer了一下,支持libv4l,但是仍然没有调用,这个可能需要arm开发经验了。我还是用回Tegra TK1官方支持的opencv2.0+吧,那个上面已经实现摄像头的读取之类的开发。
而且摄像头打开是第一步,后面不知道会出什么幺蛾子。opencv1.0过时很久了,换个TX1之类的增加速度吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值