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搭建微信公众平台
Feb 09 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
python生成n个元素的全组合方法
Nov 13 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
学习python的前途 python挣钱
Feb 27 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
Python爬虫抓取指定网页图片代码实例
Jul 24 Python
Python 使用生成器代替线程的方法
Aug 04 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 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取进制余数函数代码
2012/01/19 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
JS查看对象功能代码
2008/04/25 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
JS面向对象编程详解
2016/03/06 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
基于python中__add__函数的用法
2019/11/25 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
python爬取youtube视频的示例代码
2021/03/03 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
2014年元旦活动方案
2014/02/15 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
个人汇报材料范文
2014/12/30 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书