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