#====================================================================================================
#檔案說明:
# [1]OpenCv讀入圖片後,使用Tensorflow中的tf.plcaeholder佔位符變數,將圖片載入找Tensorflow裡
# [2]然後,使用Tensorflow裡面的函式,對影象進行裁剪
# [3]最後,使用OpenCv裡面的函式,對影象進行顯示
#函式原型:
# def slice(input_, begin, size, name=None):
#函式說明:
# [1]Extracts a slice from a tensor
# [2]從一個張量中,提取一個切片
#引數說明:
# [1]input_ : 輸入的張量,可以將RGB影象矩陣看成一個三維的張量,維度為[height,width,depth]
# [2]begin : 張量切片的起始座標點
# [3]size : 切片的尺寸
#====================================================================================================
import cv2
import tensorflow as tf
image_raw_data_cv = cv2.imread("F:/cifar-10-batches-py/building.jpg") #[1]OpenCv載入影象
image_raw_data_tf = tf.placeholder('uint8',[None,None,3]) #[2]定義一個接收影象的plceholder變數
image_slice = tf.slice(image_raw_data_tf,[10,100,0],[100,200,-1])#[3]裁剪影象,[heigt,widht,depth]
with tf.Session() as sess: #[1]建立會話物件
#[2]首先,將OpenCv讀入的影象載入到Tensorflow的變數中,然後,執行操作
resultImg = sess.run(image_slice,feed_dict={image_raw_data_tf:image_raw_data_cv})
print(resultImg.shape) #[3]輸出,處理後,影象的維度
cv2.imshow('resultImg',resultImg) #[4]視覺化
cv2.imshow('srcImg',image_raw_data_cv)
cv2.waitKey(0)
#====================================================================================================
#檔案說明:
# [1]OpenCv讀入圖片後,在Tensorflow變數初始化的時候,將影象資料載入到tf.Variable中
# [2]然後,使用Tensorflow裡面的函式tf.transpose對影象進行轉置
# [3]最後,使用OpenCv裡面的函式,對影象進行顯示
#函式原型:
# def transpose(a, perm=None, name="transpose", conjugate=False)
#函式說明:
# 這個函式主要用於交換張量不同的維度,如矩陣轉置
#引數說明:
# [1]a : 輸入的張量
# [2]perm: 指定交換的維度,例如perm=[1,0,2]表示交換影象的高度和寬度,0代表高度,1代表寬度,2代表深度
#====================================================================================================
import cv2
import tensorflow as tf
image_raw_data_cv = cv2.imread("F:/cifar-10-batches-py/building.jpg") #[1]OpenCv載入影象
image_raw_data_tf = tf.Variable(image_raw_data_cv,name='image_raw_data_tf')#[2]建立一個Tensorflow的變數類物件
initial = tf.initialize_all_variables() #[3]在變數初始化的過程中,就將OpenCv
# 載入的影象資料載入到了Tensorflow的變數中
with tf.Session() as sess: #[1]建立會話物件
transImgOp = tf.transpose(image_raw_data_tf,perm=[1,0,2]) #[2]交換影象的高度和寬度
sess.run(initial)
resultImg = sess.run(transImgOp)
cv2.imshow('resultImg',resultImg) #[4]視覺化
cv2.imshow('srcImg',image_raw_data_cv)
cv2.waitKey(0)
#====================================================================================================
#檔案說明:
# 利用Tensorflow中的函式對影象進行縮放,Tensorflow中其他的影象預處理操作與次類似,例如影象翻轉操作
#====================================================================================================
import cv2
import tensorflow as tf
image_raw_data_cv = cv2.imread("F:/cifar-10-batches-py/building.jpg") #[1]OpenCv載入影象
image_raw_data_tf = tf.Variable(image_raw_data_cv,name='image_raw_data_tf')#[2]建立一個Tensorflow的變數類物件
initial = tf.global_variables_initializer() #[3]在變數初始化的過程中,就將OpenCv
# 載入的影象資料載入到了Tensorflow的變數中
with tf.Session() as sess: #[1]建立會話物件
resizedImgOp = tf.image.resize_images(image_raw_data_tf,[200,200],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
sess.run(initial)
resultImg = sess.run(resizedImgOp)
cv2.imshow('resultImg',resultImg) #[4]視覺化
cv2.imshow('srcImg',image_raw_data_cv)
cv2.waitKey(0)