【Tensorflow_DL_Note14】TensorFlow可视化学习1-Tensorflow与OpenCv混合编程

#====================================================================================================
#文件说明:
#       [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)

【Tensorflow_DL_Note14】TensorFlow可视化学习1-Tensorflow与OpenCv混合编程_第1张图片

#====================================================================================================
#文件说明:
#       [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_DL_Note14】TensorFlow可视化学习1-Tensorflow与OpenCv混合编程_第2张图片

#====================================================================================================
#文件说明:
#        利用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)
【Tensorflow_DL_Note14】TensorFlow可视化学习1-Tensorflow与OpenCv混合编程_第3张图片

你可能感兴趣的:(【Tensorflow_DL_Note14】TensorFlow可视化学习1-Tensorflow与OpenCv混合编程)