Openv和Tensorflow中的image相互转换
opencv读取image直接通过cv2.imread. 获取的图片格式为BGR(三通道图像),是已经编码过的图像。
Tensorflow通过tf.gfile.FastGFile(filename,’rb’).read()读取的图像,是图像的原始数据,还需要经过解码,才能获取图像的数据,数据的格式为RGB(三通道图像),这一点是与Opencv不同。Tensorflow提供了对jpeg和png格式图片的解码函数,例如“decode_jpeg”对jpeg格式的图片进行解码,使用encode_jpeg编码,将图像保存到本地。
说了这么多,opencv与Tensorflow的image是如何转换的呢?请看代码:
# First, load the image againfilename = "/home/scyang/Pictures/12.jpg"def tf_read_opencv_show():# read image raw dataimage_raw_data = tf.gfile.FastGFile(filename,'rb').read()with tf.Session() as session:# get image height widthheight, width = image_reader.read_image_dims(session, image_data)# decode image to jpegimage = tf.image.decode_jpeg(image_raw_data)# result is <class 'numpy.ndarray'>,can use cv2.imshow,# but should cvtcolor to bgrprint(type(session.run(image)))raw_image_data = cv2.imread(filename)image = tf.placeholder(tf.uint8, [None, None, 3])slice = tf.slice(image, [10, 0, 0], [100, -1, -1])with tf.Session() as session:result = session.run(slice, feed_dict={image: raw_image_data})print(result.shape)cv2.imshow('image', result)cv2.waitKey(0)
在上面的代码中,Tensorflow使用的是placeholder作为输入,这可以作为神经网络训练的输入端。当然也可以使用变量进行与opencv的image进行转换,效果是一样的。
Openv和Tensorflow中的image相互转换相关推荐
- TensorFlow中的语义分割套件
TensorFlow中的语义分割套件 描述 该存储库用作语义细分套件.目标是轻松实现,训练和测试新的语义细分模型!完成以下内容: 训练和测试方式 资料扩充 几种最先进的模型.轻松随插即用 能够使用任何 ...
- TensorFlow中的计算图
作者 | stephenDC 来源 | 大数据与人工智能(ID:ai-big-data) 1 什么是计算图? 一个机器学习任务的核心是模型的定义以及模型的参数求解方式,对这两者进行抽象之后,可以确定一 ...
- 如何使用TensorFlow中的Dataset API
翻译 | AI科技大本营 参与 | zzq 审校 | reason_W 本文已更新至TensorFlow1.5版本 我们知道,在TensorFlow中可以使用feed-dict的方式输入数据信息,但是 ...
- tensorflow中的向量范数
向量范数(Vector Norm):是表征向量"长度"的一种度量方法,其中可以推广到张量上. 在tensorflow中可以通过tf.norm(x,ord)求解张量的L1,L2,∞等 ...
- tensorflow中的命令行参数介绍
1.tensorflow中的tf.flags参数介绍 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-01-20 21:39: ...
- tensorflow中的变量管理
import tensorflow as tf# variable_scope()示例 """ tensorflow中通过变量名称获取变量的机制主要是通过tf.get_v ...
- TensorFlow中Session.run和Tensor.eval的区别
之前在TensorFlow中运行代码时,在会话中会需要运行节点,会碰到两种方式:Session.run()和Tensor.eval(),刚开始不太懂这两者之间的差异,最后通过查找官方文档和一些资料了解 ...
- tensorflow中的tf.summary.image
tensorflow中的tf.summary.image tf.summary.image(name,#生成的节点的名称.也将作为TensorBoard中的系列名称tensor,#uint8或者flo ...
- tensorflow中Tensorboard的用法
tensorflow中Tensorboard的用法 下面代码定义了一个简单的用于实现常量加法和乘法的计算图. import tensorflow as tf input1 = tf.constant( ...
最新文章
- 多视图几何三维重建实战系列之R-MVSNet
- 服务器唯一id生成规则
- matlab 比例谐振控制器,比例谐振控制的一种实现(含代码)
- 科大星云诗社动态20210424
- android设置提交的隐藏域以及在onItemClick中获取对应的数据
- weblogic线程阻塞性能调优(图解)转
- C#接口中为什么不能像java那样使用static?
- 马来西亚热情拥抱阿里巴巴 马云倡议的eWTP首次落地海外
- python-字典-定义-增删改取
- OpenCV--solvePnp
- 2013科目四考试_2013驾考科目四考试流程
- 单片机需要数电模电基础吗?单片机要多少模电数电知识 ?
- halcon之屌炸天的自标定(1)
- 百度笔试题--论坛数据库表设计
- Proxmox监视器
- dwf是什么格式文件
- windows配置Redis访问时只能用localhost不能用ip访问
- nginx中配置root和alias的区别
- 电网调度计算机系统目前有三种,电网调度厂站端调试员高级工技能鉴定试题整理(包括图).doc...
- 我有个朋友叫大路,他满世界“平事儿”不含糊