Ubuntu下使用Anaconda安装opencv 解决无法读取视频

Ubuntu下使用Anaconda安装opencv
最近在Ubuntu16.04下使用Anaconda安装opencv,碰到很多坑,记录备忘。

cv2.VideoCapture(filename) 返回总为False,路径什么检查都没问题,cv2.CAP_PROP_FPS值总是5,应该是缺了某些解码依赖包。

1.0:Ubuntu解决方法

推荐第一步配置conda为清华源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
 

conda config --set show_channel_urls yes

修改conda配置信息:

vim ~/.condarc

改为:关键点 删除 - defaults 增加 ssl_verify: false,如果不太清楚如何修改,直接把下方内容替换掉~/.condarc中的内容

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
show_channel_urls: true
ssl_verify: false

保存以后Ubuntu的这个问题就解决了。

根据这篇博文,我在 /opt/opencv/opencv-3.2.0/modules/videoio/src/cap_ffmpeg_impl.hpp 里最顶端添加了:

#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020
1
2
3
保存退出,重新编译,在原来出错的地方很顺畅的走了下去。0.0
还没有编译完,测试后再更
————————————————
版权声明:本文为CSDN博主「GlLamant」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guo_lei_lamant/article/details/81568346

在百度上看到许多安装过程特别麻烦的~~还要手动下载安装。。开门见山,三行命令。

第一步:添加源。

sudo add-apt-repository ppa:djcj/hybrid
第二步:更新源。
sudo apt-get update
第三步:下载安装。
sudo apt-get install ffmpeg
如上,就安装好了~
————————————————
版权声明:本文为CSDN博主「lwgkzl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lwgkzl/article/details/77836207

解决方案:安装ffmpeg(必须先装ffmpeg再安装OpenCV)

1.安装ffmpeg

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

cd source_directory

./configure --enable-shared --disable-static

make

sudo make install

检查是否安装成功

ffmpeg

2.安装opencv

安装之前要先装好一堆依赖包,参考官网 http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

安装过程出现问题可以参考部分解决方案

写下这篇博客,希望其他人安装时能够轻松一点,少几次还原重装......

版本: ubuntu18.10  OpenCV-4.1.0

首先,OpenCV 有在ubuntu上安装的官方文档:https://docs.opencv.org/4.1.0/d7/d9f/tutorial_linux_install.html

大家可以参照官方文档进行操作

1.安装相关软件包

打开终端,安装以下软件包

 
  1. sudo apt install build-essential

  2. sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

  3. sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 第三行中,可能会出现 无法定位软件包libjasper-dev 的错误提示

查阅资料后找到解决方法如下(原文:https://blog.csdn.net/weixin_41053564/article/details/81254410)

 
  1. sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

  2. sudo apt update

  3. sudo apt upgrade

  4. sudo apt install libjasper1 libjasper-dev

   其中 libjasper1 是 libjasper-dev 的依赖包

2.获取Source

接下来获取 OpenCV 的 source 文件,直接到官网下载:https://opencv.org/releases/

点击对应版本的 Source 即可下载

下载成功后解压,解压到哪个文件夹都可以

3.用 CMake 从 Source 构建 OpenCV

进入解压出来的OpenCV-4.1.0文件夹,创建一个新文件夹,我创建的叫 build

进入新文件夹,打开终端,进入这个文件夹

执行命令

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

 如果报错,那么去掉 -D后面的空格再尝试一下,即

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

这之中 , /usr/local 是 OpenCV 的安装路径

接下来开始编译

sudo make

也可以使用多线程进行编译

sudo make -j3

 j 后面的数字是你想要使用的线程数量

开始编译后,等待编译结束,通常要挺长时间

编译结束后

sudo make install 

完成后,OpenCV 就安装好了,接下来要配置 OpenCV 的编译环境

4.配置环境

这部分参考了  https://blog.csdn.net/sandalphon4869/article/details/94398876#3launchjson_144 

首先将OpenCV的库添加到路径,从而可以让系统找到

打开opencv.conf ,打开后很可能是空白

sudo gedit /etc/ld.so.conf.d/opencv.conf 

在文末添加 

/usr/local/lib

保存后,执行如下命令使得刚才的配置路径生效

sudo ldconfig 

接下来配置 bash

sudo gedit /etc/bash.bashrc  

在文件最末尾添加

 
  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

  2. export PKG_CONFIG_PATH

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  

然后更新

sudo updatedb 

到这里配置就完成了

5.测试

转到 opencv-4.1.0/sample/cpp/example_cmake 目录下,打开终端

运行

 
  1. cmake .

  2. make

  3. ./opencv_example

如果摄像头打开,左上角出现 Hello OpenCV 则证明安装成功

可以直接pip安装opencv,但无法读取视频,需要编译源码。
Anaconda安装opencv过程

1.不能在安装Anaconda的情况下编译opencv,编译会链接Anaconda的库,编译程序会出错。已安装先移除

    1.到根目录下,打开终端并输入:
        sudo gedit ~/.bashrc
    2.在.bashrc文件末尾用#号注释掉之前添加的路径(或直接删除):
        #export PATH=/home/lq/anaconda3/bin:$PATH
        保存并关闭文件
    3.使其立即生效,在终端执行:
        source ~/.bashrc
    4.anaconda修改位置或删除
    5.最好重启
1
2
3
4
5
6
7
8
9
2 安装opencv

Prerequisites
# Install build tools
$ sudo apt-get install build-essential cmake git
# Install OpenCV dependencies
$ sudo apt-get install pkg-config libgtk2.0-dev
# Install ssl for https, v4l for video
$ sudo apt-get install libssl-dev libv4l-dev v4l-utils
Install OpenCV 3.2
$ git clone https://github.com/opencv/opencv.git
$ cd opencv/
$ git checkout tags/3.2.0
$ cd opencv/
$ mkdir build
$ cd build/
$ cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
\
-DWITH_CUDA=OFF \
\
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
..
# If CMake hangs during "ICV: Downloading ippicv_linux_20151201.tgz..."
$ ICV_PATH=../3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz &&
\
ICV_URL=https://github.com/opencv/opencv_3rdparty/raw/ippicv/master_20151201/ippicv/ippicv_linux_20151201.tgz && \
rm -f $ICV_PATH && wget $ICV_URL && mv ippicv_linux_20151201.tgz $ICV_PATH
$ make -j$(nproc --all)
$ sudo make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
3 在anaconda安装opencv

把/usr/local/lib/python2.7/site-packages/cv2.so复制到anaconda对应目录下

pip install opencv-python
1

————————————————
版权声明:本文为CSDN博主「巽二」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37868504/article/details/79053536

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值