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设置默认编码为utf8的方法
Jul 01 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
python实现换位加密算法的示例
Oct 14 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
python科学计算之scipy——optimize用法
Nov 25 Python
Django密码存储策略分析
Jan 09 Python
python集合删除多种方法详解
Feb 10 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
Eclipse配置python默认头过程图解
Apr 26 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 Python
如何使用Python实现一个简易的ORM模型
May 12 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
php抓取网站图片并保存的实现方法
2015/10/29 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
详解Python的Django框架中的中间件
2015/07/24 Python
python基础教程之五种数据类型详解
2017/01/12 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
python实现顺序表的简单代码
2018/09/28 Python
python框架django项目部署相关知识详解
2019/11/04 Python
关于Python-faker的函数效果一览
2019/11/28 Python
python程序需要编译吗
2020/06/19 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
2014年高考决心书
2014/03/11 职场文书
环保建议书600字
2014/05/14 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
工作所在部门证明
2014/09/21 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
授权委托书
2015/01/28 职场文书
入党自荐书范文
2015/03/05 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript