Tensorflow深度学习之十一:基础图像处理
来源:互联网 发布:sql server怎么导入表 编辑:程序博客网 时间:2024/06/10 03:05
OpenCV是一个十分强大的视觉库,tensorflow也提供了十分强大的图片处理函数,下面是一个简单的例子来说明使用tensorflow和opencv两个工具进行深度学习程序的设计。
首先是使用的原始图片:
import tensorflow as tfimport cv2# 这里定义一个tensorflow读取的图片格式转换为opencv读取的图片格式的函数# 请注意:# 在tensorflow中,一个像素点的颜色顺序是R,G,B。# 在opencv中,一个像素点的颜色顺序是B,G,R。# 因此,我们循环遍历每一个像素点,将第0位的颜色和第2位的颜色数值换一下即可。# 第一个参数name:将要显示的窗口名称。# 第二个参数image:储存图片信息的一个tensor。def cv2Show(name="", image=None): # 获取矩阵信息 np = image.eval() # 获取行数列数 row, col = len(np),len(np[1]) # 两重循环遍历 for i in range(row): for j in range(col): # 交换数值 tmp = np[i][j][0] np[i][j][0] = np[i][j][2] np[i][j][2] = tmp # 显示图片 cv2.imshow(name,np) pass# tensorflow会话with tf.Session() as sess: # 以二进制的方式读取图片。 image_raw_data = tf.gfile.FastGFile("bus.jpg", "rb").read() # 按照jpeg的格式解码图片。 image_data = tf.image.decode_jpeg(image_raw_data) # 显示原图片。 cv2Show("Read by Tensorflow+Dispalyed by Opencv",image_data) # opencv读取同一张图片。 img = cv2.imread("bus.jpg") # opencv显示图片。 cv2.imshow("Read by Opencv+Displayed by Opencv",img) # 重新调整大小。 # resize_images(images,size,method=ResizeMethod.BILINEAR,align_corners=False)' # 参数如下: # images:需要调整的图片,通常是一个tensor # size:调整之后的大小,一般是一个长度为2的list # method:调整大小使用的方法,这里我们使用最近邻居法。 # align_corner:是否对齐四角。 resized = tf.image.resize_images(image_data,[300,300],method=tf.image.ResizeMethod.NEAREST_NEIGHBOR) # 显示图片。 cv2Show("Resized:Nearest Neighbor",resized) # 调整大小,采用切割或者填充的方式。 # 如果原始图像的尺寸大于目标图像,那么这个函数会自动切割原始图像中的居中的部分。 # 如果原始图像的尺寸小于目标图像,那么这个函数会自动在原始图像的周围采用全0填充。 # resize_image_with_crop_or_pad(image, target_height, target_width) # image:待调整的图像。 # target_height:目标图像的高度。 # target_width:目标图像的宽度。 cropped = tf.image.resize_image_with_crop_or_pad(image_data,300,300) cv2Show("After being cropped",cropped) padded = tf.image.resize_image_with_crop_or_pad(image_data,600,900) cv2Show("After being padded",padded) # 通过比例调整图像大小。 # central_crop(image, central_fraction) # image:待调整的图像。 # central_fraction:比例,是一个(0,1]之间的数字,表示需要调整的比例。这里我们选择的比例是0.5,即50%。 central_cropped = tf.image.central_crop(image_data,0.5) cv2Show("After being central-cropped",central_cropped) cv2.waitKey()
使用的函数功能,参数等信息在代码中均已写明。
下面的表格实在使用调整大小的函数时常常需要使用的Method取值。
下面是程序的运行截图:
阅读全文
0 0
- Tensorflow深度学习之十一:基础图像处理
- Tensorflow深度学习之十二:基础图像处理之二
- Tensorflow深度学习之十三:基础图像处理之三
- tensorflow学习之图像处理
- 在TensorFlow中使用深度学习GANs处理图像
- Tensorflow深度学习笔记(十一)--利用Inception做图像识别
- 深度学习第四天: 基础Theano图像处理知识.md
- TensorFlow实现经典深度学习网络(5):TensorFlow实现自然语言处理基础网络Word2Vec
- Tensorflow深度学习之二十一:LeNet的实现(CIFAR-10数据集)
- TensorFlow的深度学习进行图像修复
- Tensorflow深度学习之softmax
- Python基础之十一图像界面
- 深度学习基础知识 和 Tensorflow基础
- 深度学习之图像修复
- 深度学习之图像修复
- TensorFlow学习--tensorflow图像处理--添加标注框
- 深度学习笔记——深度学习框架TensorFlow(十一)
- 如何在 TensorFlow 中用深度学习修复图像?(附论文)
- Python爬虫学习纪要(五):正则表达式2
- C++编程学习52个经典网站 强力推荐
- JFinal之旅——Maven下搭建项目
- 百度地图自定义覆盖物
- Tarjan 求割边割点
- Tensorflow深度学习之十一:基础图像处理
- HDU 1166 敌兵布阵 (树状数组)
- C
- RabbitMQ 三种Exchange
- POJ2566Bound Found(尺取法好题)
- 8月2日总结
- 浅谈Android系统中drawable的使用
- 【LeetCode】climbStairs
- H5 定位