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

来源:互联网 发布:混沌遗传算法 编辑:程序博客网 时间:2024/06/04 01:30

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 cv2cv2.__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 cv2import sysfrom PIL import Imagedef 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

原创粉丝点击