python使用TensorFlow进行图像处理的方法


Posted in Python onFebruary 28, 2018

一、图片的放大缩小

在使用TensorFlow进行图片的放大缩小时,有三种方式:

1、tf.image.resize_nearest_neighbor():临界点插值
2、tf.image.resize_bilinear():双线性插值
3、tf.image.resize_bicubic():双立方插值算法

下面是示例代码:

# encoding:utf-8
# 使用TensorFlow进行图片的放缩
import tensorflow as tf
import cv2
import numpy as np

# 读取图片
img = cv2.imread("1.jpg")
# 显示原始图片
cv2.imshow("resource", img)

h, w, depth = img.shape
img = np.expand_dims(img, 0)

# 临界点插值
nn_image = tf.image.resize_nearest_neighbor(img, size=[h+100, w+100])
nn_image = tf.squeeze(nn_image)
with tf.Session() as sess:
  # 运行 'init' op
  nn_image = sess.run(nn_image)
nn_image = np.uint8(nn_image)

# 双线性插值
bi_image = tf.image.resize_bilinear(img, size=[h+100, w+100])
bi_image = tf.squeeze(bi_image)
with tf.Session() as sess:
  # 运行 'init' op
  bi_image = sess.run(bi_image)
bi_image = np.uint8(bi_image)

# 双立方插值算法
bic_image = tf.image.resize_bicubic(img, size=[h+100, w+100])
bic_image = tf.squeeze(bic_image)
with tf.Session() as sess:
  # 运行 'init' op
  bic_image = sess.run(bic_image)
bic_image = np.uint8(bic_image)
# 显示结果图片
cv2.imshow("result_nn", nn_image)
cv2.imshow("result_bi", bi_image)
cv2.imshow("result_bic", bic_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

二、图片的亮度调整

在使用TensorFlow进行图片的亮度调整时,有两种方式:
1、tf.image.adjust_brightness():亮度的全局调整
2、tf.image.random_brightness():亮度的随机调整

下面是示例代码:

# encoding:utf-8
# 使用TensorFlow调整图片的亮度
import tensorflow as tf
import cv2
import numpy as np

# 读取图片
img = cv2.imread("1.jpg")
# 显示原始图片
cv2.imshow("resource", img)

img = np.expand_dims(img, 0)
# adjust_brightness
bright_img = tf.image.adjust_brightness(img, delta=.5)
bright_img = tf.squeeze(bright_img)
with tf.Session() as sess:
  # 运行 'init' op
  result = sess.run(bright_img)
result = np.uint8(result)

rand_image = tf.image.random_brightness(img, max_delta=.5)
rand_image = tf.squeeze(rand_image)
with tf.Session() as sess:
  # 运行 'init' op
  result2 = sess.run(rand_image)
result2 = np.uint8(result2)

cv2.imshow("result", result)
cv2.imshow("result2", result2)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、图片的对比度调整

在使用TensorFlow进行图片的对比度调整时,有两种方式:
1、tf.image.adjust_contrast():对比度的全局调整
2、tf.image.random_contrast():对比度的随机调整

代码与图片的亮度调整类似,这里就不赘述了。

四、图片的饱和度调整

在使用TensorFlow进行图片的饱和度调整时,使用下列函数:

tf.image.adjust_saturation()

饱和度调整范围为0~5

下面示例代码:

# encoding:utf-8
# 使用TensorFlow调整图片的亮度
import tensorflow as tf
import cv2
import numpy as np

# 读取图片
img = cv2.imread("1.jpg")
# 显示原始图片
cv2.imshow("resource", img)

# 图像的饱和度调整
stand_img = tf.image.adjust_saturation(img, saturation_factor=2.4)
with tf.Session() as sess:
  # 运行 'init' op
  result = sess.run(stand_img)
result = np.uint8(result)

cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

五、图片的标准化

在使用TensorFlow对图像数据进行训练之前,常需要执行图像的标准化操作,它与归一化是有区别的,归一化不改变图像的直方图,标准化操作会改变图像的直方图。标准化操作使用如下函数:

tf.image.per_image_standardization()

下面是示例代码:

# encoding:utf-8
# 使用TensorFlow调整图片的亮度
import tensorflow as tf
import cv2
import numpy as np

# 读取图片
img = cv2.imread("1.jpg")
# 显示原始图片
cv2.imshow("resource", img)

# 图像标准化操作
stand_img = tf.image.per_image_standardization(img)
with tf.Session() as sess:
  # 运行 'init' op
  result = sess.run(stand_img)
result = np.uint8(result)

cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

六、图像的色彩空间转化

使用TensorFlow进行图像的色彩空间转化,包括HSV、RGB、灰度色彩空间之间的转化,使用的函数如下所示:

tf.image.rgb_ to_hsv() 
tf.image.rgb_ to_grayscale() 
tf.image.hsv_ to_rgb()

代码与图像的标准化操作的代码相似,这里不再赘述。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用优化器来提升Python程序的执行效率的教程
Apr 02 Python
详解Python函数作用域的LEGB顺序
May 14 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
python利用不到一百行代码实现一个小siri
Mar 02 Python
python基础之入门必看操作
Jul 26 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
python3学习之Splash的安装与实例教程
Jul 09 Python
python调用matlab的m自定义函数方法
Feb 18 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
使用Python搭建虚拟环境的配置方法
Feb 28 #Python
Python OpenCV获取视频的方法
Feb 28 #Python
python实现多线程行情抓取工具的方法
Feb 28 #Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 #Python
python定向爬取淘宝商品价格
Feb 27 #Python
python抓取文件夹的所有文件
Feb 27 #Python
python数据分析数据标准化及离散化详解
Feb 26 #Python
You might like
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
Python计算字符宽度的方法
2016/06/14 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
【python】matplotlib动态显示详解
2019/04/11 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
python如何删除文件、目录
2020/06/23 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
学生自我鉴定
2013/12/18 职场文书
房地产广告词大全
2014/03/19 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
最新离婚协议书范本
2014/08/19 职场文书
公司收款委托书范本
2014/09/20 职场文书
仓管员岗位职责
2015/02/03 职场文书
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android