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 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
Python 文件读写操作实例详解
Mar 12 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python 读文件,然后转化为矩阵的实例
Apr 23 Python
详解如何在Apache中运行Python WSGI应用
Jan 02 Python
对Python3使运行暂停的方法详解
Feb 18 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
分享PyCharm的几个使用技巧
Nov 10 Python
基于python爬取有道翻译过程图解
Mar 31 Python
python 模拟登陆github的示例
Dec 04 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远程采集图片详细教程
2014/07/01 PHP
php实现的ping端口函数实例
2014/11/12 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
Python计算字符宽度的方法
2016/06/14 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
总经理司机岗位职责
2014/02/06 职场文书
2014年标准化工作总结
2014/12/17 职场文书
工作调动申请报告
2015/05/18 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏