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程序代码片段
Jun 02 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
Python subprocess模块详细解读
Jan 29 Python
Django MEDIA的配置及用法详解
Jul 25 Python
淘宝秒杀python脚本 扫码登录版
Sep 19 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
Python3 用什么IDE开发工具比较好
Nov 28 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 Python
Python一行代码实现自动发邮件功能
May 30 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 DOS攻击实现代码(附如何防范)
2012/05/29 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
vivo智能手机官方商城:vivo
2016/09/22 全球购物
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
英语专业毕业生自我鉴定
2013/11/09 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
初中美术教学反思
2014/01/29 职场文书
精彩广告词大全
2014/03/19 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2016新年晚会开场白
2015/12/03 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
OpenCV实现普通阈值
2021/11/17 Java/Android