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个赚外快的小