(人脸识别1-6)——Ubuntu16.04下如何同时安装TensorFlow和opencv

Ubuntu16.04下如何安装TensorFlow

折腾死我了

因为自己安装了opencv和tensorflow,结果opencv一定要在workon cv才能运行,也就是说在安装opencv3.1的时候,把opencv3.1安装在cv的虚拟环境中,但是在tensorflow安装的时候,利用anaconda 命令行安装,所以导致workon cv使用的python版本是deflaut 版本,python2.7 而在conda中运行tensorflow是anaconda下的Python版本,所以导致两个环境看似一样,结果根本不能在一起运行。

之前安装的时opencv的源码,也是最常见的安装方式。
可以参照我之前对外国小哥主页的解读

下面说一下捷径,让两个环境结合起来,绕过之前走过的坑

1.安装Anaconda 4.2 + OpenCV 3.1

1 下载并安装Anaconda4.2.0

所有的Anaconda版本,Linux选Anaconda3-4.2.0-Linux-x86_64.sh

注意系统是64位,Tensorflow只支持windows64位。

(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)

2 打开终端,然后执行(这个网站可能地址不稳定,多试几次)

conda install -c https://conda.anaconda.org/menpo opencv3

3.打开python测试一下代码.

import cv2
cv2.__version__

这里写图片描述

2.安装CPU/GPU版TensorFlow

1 利用anaconda安装tensorflow

建立一个 conda 计算环境

conda create -n tensorflow python=2.7

这里写图片描述

2 激活环境,使用 conda 安装 TensorFlow

Activate the environment and use pip to install TensorFlow inside it.

source activate tensorflow

这里写图片描述

3 安装tensorflow

安装

pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl

这里写图片描述

安装成功后,每次使用 TensorFlow 的时候需要激活 conda 环境,可以看到,在正常情况下,是anaconda的bin路径在环境变量中,但激活conda-tensorflow环境后,环境变量中存储的是tensorflow下的bin路径

这里写图片描述

测试tensorflow是否安装成功

(1) 激活conda环境

(2)进入python

(3)import tensorflow

整个过程比较顺利,tensorflow被成功import了
这里写图片描述

3.测试opencv和tensorflow的结合

# -*- coding:utf-8 -*-
import cv2
import sys
from PIL import Image


def CatchUsbVideo(window_name, camera_idx):
    cv2.namedWindow(window_name)

    # 视频来源,可以来自一段已存好的视频,也可以直接来自USB摄像头
    cap = cv2.VideoCapture(camera_idx)

    while cap.isOpened():
        ok, frame = cap.read()  # 读取一帧数据
        if not ok:
            break

            # 显示图像并等待10毫秒按键输入,输入‘q’退出程序
        cv2.imshow(window_name, frame)
        c = cv2.waitKey(10)
        if c & 0xFF == ord('q'):
            break

            # 释放摄像头并销毁所有窗口
    cap.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("Usage:%s camera_id\r\n" % (sys.argv[0]))
    else:
        CatchUsbVideo("截取视频流", int(sys.argv[1]))

代码来自一个对opencv研究的博主。
保存这个文件为opencamera.py文件,在终端运行,0表示你的摄像头设备编号,0为打开默认摄像头

python opencamera.py.py 0

4.总结

之前通过前面的安装opencv,下载了一个opencv3.1的文件夹

这里写图片描述

虽然最后因为opencv和tensorflow不在一个虚拟环境下,不能同时运行,但是安装了opencv3.1这个包可以看到很多源代码,其中包括很python版本的源码可以提供参和学习,虽然过程曲折,也不能说安装opencv3.1这个包没有用,对后面学习和研究源码还是很有帮助的。

而且最后还是实现了把tensorflow和opencv结合起来。结局很愉快


【原创文章】转载请注明出处:http://blog.csdn.net/wearge/article/details/77159298

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值