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提取字典key列表的方法
Jul 11 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
python+selenium实现自动抢票功能实例代码
Nov 23 Python
Python常见数字运算操作实例小结
Mar 22 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
python实现数字炸弹游戏
Jul 17 Python
python 下划线的多种应用场景总结
May 12 Python
Python游戏开发实例之graphics实现AI五子棋
Nov 01 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 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用GD库生成高质量的缩略图片
2011/03/09 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
python中time、datetime模块的使用
2020/12/14 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
培训班开班仪式主持词
2014/03/28 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
2014年幼师工作总结
2014/11/22 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
HTML基本元素标签介绍
2022/02/28 HTML / CSS
Nginx实现会话保持的两种方式
2022/03/18 Servers