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相互转换相关推荐

  1. TensorFlow中的语义分割套件

    TensorFlow中的语义分割套件 描述 该存储库用作语义细分套件.目标是轻松实现,训练和测试新的语义细分模型!完成以下内容: 训练和测试方式 资料扩充 几种最先进的模型.轻松随插即用 能够使用任何 ...

  2. TensorFlow中的计算图

    作者 | stephenDC 来源 | 大数据与人工智能(ID:ai-big-data) 1 什么是计算图? 一个机器学习任务的核心是模型的定义以及模型的参数求解方式,对这两者进行抽象之后,可以确定一 ...

  3. 如何使用TensorFlow中的Dataset API

    翻译 | AI科技大本营 参与 | zzq 审校 | reason_W 本文已更新至TensorFlow1.5版本 我们知道,在TensorFlow中可以使用feed-dict的方式输入数据信息,但是 ...

  4. tensorflow中的向量范数

    向量范数(Vector Norm):是表征向量"长度"的一种度量方法,其中可以推广到张量上. 在tensorflow中可以通过tf.norm(x,ord)求解张量的L1,L2,∞等 ...

  5. tensorflow中的命令行参数介绍

    1.tensorflow中的tf.flags参数介绍 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-01-20 21:39: ...

  6. tensorflow中的变量管理

    import tensorflow as tf# variable_scope()示例 """ tensorflow中通过变量名称获取变量的机制主要是通过tf.get_v ...

  7. TensorFlow中Session.run和Tensor.eval的区别

    之前在TensorFlow中运行代码时,在会话中会需要运行节点,会碰到两种方式:Session.run()和Tensor.eval(),刚开始不太懂这两者之间的差异,最后通过查找官方文档和一些资料了解 ...

  8. tensorflow中的tf.summary.image

    tensorflow中的tf.summary.image tf.summary.image(name,#生成的节点的名称.也将作为TensorBoard中的系列名称tensor,#uint8或者flo ...

  9. tensorflow中Tensorboard的用法

    tensorflow中Tensorboard的用法 下面代码定义了一个简单的用于实现常量加法和乘法的计算图. import tensorflow as tf input1 = tf.constant( ...

最新文章

  1. 多视图几何三维重建实战系列之R-MVSNet
  2. 服务器唯一id生成规则
  3. matlab 比例谐振控制器,比例谐振控制的一种实现(含代码)
  4. 科大星云诗社动态20210424
  5. android设置提交的隐藏域以及在onItemClick中获取对应的数据
  6. weblogic线程阻塞性能调优(图解)转
  7. C#接口中为什么不能像java那样使用static?
  8. 马来西亚热情拥抱阿里巴巴 马云倡议的eWTP首次落地海外
  9. python-字典-定义-增删改取
  10. OpenCV--solvePnp
  11. 2013科目四考试_2013驾考科目四考试流程
  12. 单片机需要数电模电基础吗?单片机要多少模电数电知识 ?
  13. halcon之屌炸天的自标定(1)
  14. 百度笔试题--论坛数据库表设计
  15. Proxmox监视器
  16. dwf是什么格式文件
  17. windows配置Redis访问时只能用localhost不能用ip访问
  18. nginx中配置root和alias的区别
  19. 电网调度计算机系统目前有三种,电网调度厂站端调试员高级工技能鉴定试题整理(包括图).doc...
  20. 我有个朋友叫大路,他满世界“平事儿”不含糊

热门文章

  1. 申请@msn.com的邮箱最新网址
  2. 【蓝桥杯真题】 Python题解
  3. MySQL学习-表记录的查询操作
  4. 用go 语言 实现一个密码生成工具
  5. 算法基础入门——数论(数学知识基础)
  6. 转载的几个好用的工具---插座学院
  7. python读取压缩文件时乱码,zipfile解压缩包,出现中文乱码问题问题
  8. cmake-3.18.2下载
  9. 【笔记】DSP程序烧写问题
  10. 如何成为Java架构师?学习路线是怎样的?大佬总结成长之路跟着往上走,建议你提早开始准备!