openCV和Tensorflow起步
1.配置开发环境Anaconda
(1)打开Anaconda Prompt,将网址替换为清华镜像,这样下载各种依赖会快一些:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes(2)打开Anaconda Navigator,创建一个运行环境,名称为tensorflow36,并安装tensorflow和opencv
2.Hello World
(1)在Navigator中Home页面里运行notebook
(2)图片的读取与展示
cv2.imread()用于图片读取,它接受2个参数。参数1为文件名,参数2为图片读取类型,0为读取成灰度图,1为读取成彩色图
cv2.imshow()用于显示图片,它接受2个参数。参数1为窗体名称,参数2为读取图片的原始数据
cv2.waitKey(0)用于程序暂停,要显示图片必须运行这行代码
运行结果
(3)图片的写入
cv2.imwrite()该方法接受3个参数。参数1为文件名,参数2为图片原始数据,参数三为压缩质量,不同的图片格式拥有不同的数值范围,对于jpg来说可选质量0-100,对于png来说压缩范围为0-9
import cv2 img = cv2.imread('image0.jpg',1) #完成图片的写入功能 cv2.imwrite('image1.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,50]) cv2.imwrite('image1.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0]) #jpg 0 压缩比高 png 0 压缩比低 #jpg 压缩范围 0-100 png 压缩范围 0-9运行结果
(4)像素操作基本概念
- 颜色深度:按8bit举例,就是用8位存储一个颜色的值,8bit的每个颜色通道的取值范围是0-255
- 图片大小:640x480即水平、竖直方向上有640、480个像素;640x480x3即图片占用的空间(8bit图片)
- 图片格式:对于png图片来说,它采用的都是无损压缩方式,比jpg多出一个alpha颜色通道,用来存储透明度
- 颜色通道:opencv读取的图片颜色通道是按bgr来排列的(b,g,r) = img[0,0]用元组来存储一个像素的颜色
运行结果
(5)tensorflow基础知识
- 使用图 (graph) 来表示计算任务
- 在被称之为 会话 (Session) 的上下文 (context) 中执行图
- 使用张量(tensor) 表示数据
- 通过变量 (Variable) 维护状态
- 使用 feed 和 fetch 可以为任意的操作赋值或者从其中获取数据
运行结果
(6)Tensorflow四则运算
tf.add()加法 tf.substract()减法 tf.multiply()乘法 tf.divide()除法
import tensorflow as tf data1 = tf.constant(6) data2 = tf.Variable(2) dataAdd = tf.add(data1,data2) dataCopy = tf.assign(data2,dataAdd)#将结果拷贝到data2中 dataMul = tf.multiply(data1,data2) dataSub = tf.subtract(data1,data2) dataDiv = tf.divide(data1,data2) init = tf.global_variables_initializer() with tf.Session() as sess:sess.run(init)print(sess.run(dataAdd))print(sess.run(dataMul))print(sess.run(dataSub))print(sess.run(dataDiv))print(sess.run(dataCopy))print(dataCopy.eval())print(tf.get_default_session().run(dataCopy)) print('end')运行结果
使用占位符方式
import tensorflow as tf data1 = tf.placeholder(tf.float32) data2 = tf.placeholder(tf.float32) dataAdd = tf.add(data1,data2) with tf.Session() as sess:print(sess.run(dataAdd,feed_dict={data1:2,data2:6})) print('end')(7)tensorflow矩阵
通过[ [data1,data2,... ] ]创建,最外层的[ ]只代表一个数组,里面的[ ]代表一行,内层的数据个数代表了几列,例如[[1,2],[3,4]]代表一个2*2的矩阵
import tensorflow as tf data1 = tf.constant([[6,6]])#创建一个1x2的矩阵 data2 = tf.constant([[2],[2]])#创建一个2x1的矩阵 data3 = tf.constant([[1,2],[3,4],[5,6]])#3x2矩阵 print(data3.shape) with tf.Session() as sess:print(sess.run(data3))print(sess.run(data3[0]))#打印第一行print(sess.run(data3[:,0]))#打印第一列print(sess.run(data3[0,1]))#第一行第二列
运行结果
到这就结束了什么都不会~~
作者:lhdoeo
链接:https://www.jianshu.com/p/286b7f57c7b9
总结
以上是生活随笔为你收集整理的openCV和Tensorflow起步的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Arxiv最新论文,深度学习热点论文,A
- 下一篇: 盘点上班族和大学生都适用的8个赚外快的小