几种图像读取方式总结

import matplotlib.image as img :img.imread()
import PIL.Image as Img :Img.open()
import tensorflow as tf :tf.read_file()
import cv2:cv2.imread()

需要注意:一、对于低版本的tf,需要将图片经过tf.Session()执行
二、cv2读取文件中不能有中文字符
三、cv2读取三通道和单通道的不同
四、cv2的取的图片文件使用cv.imshow()显示时,需要注意图像的像素值范围必须映射到0-255
五、plt.colorbar()必须在plt.imshow()之后

需要将plt.colorbar()放在要显示图像命令后边

否则出现,找不到映射关系的错误
RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a c

使用PIL和matplotlib.image两种方式读取

import matplotlib.image as img
# import PIL.Image as Img
import matplotlib.pyplot as plt
# img=Img.open(r'F:\共享文件夹\论文编辑\简化FCN\annotations\annotations\trimaps\Abyssinian_1.png')
img=img.imread(r'F:\共享文件夹\论文编辑\简化FCN\annotations\annotations\trimaps\Abyssinian_1.png')
# plt.colorbar()
# print(set(img.flatten())) # {0.007843138, 0.011764706, 0.003921569} 和{1,2,3}
plt.imshow(img)
plt.colorbar()
plt.show()

从图中看出,两种读取的图片像素值不一样,但显示现象一样,从colorbar看出,色彩范围一样,
计算1/255= 0.003921569,
2/255 = 0.007843138,
3/255 = 0.011764706
发现,有255对应关系,在不同模块读取图片后会对图片进行处理

使用tensoflow读取

import tensorflow as tf
import matplotlib.pyplot as pltimg = tf.read_file(r'F:\共享文件夹\论文编辑\简化FCN\annotations\annotations\trimaps\Abyssinian_1.png')
with tf.Session() as sess:img= sess.run(tf.image.decode_jpeg(img))
print(set(img.flatten()))  #{1, 2, 3}   #
print(img.shape)
'''
(400, 600, 1)
'''
plt.imshow(img)
plt.show()

使用opencv的cv2.imread()和plt显示

参考:https://blog.csdn.net/qq_24815615/article/details/107885393

import cv2
import matplotlib.pyplot as plt
import os
os.chdir(r'F:\共享文件夹\论文编辑\简化FCN\annotations\annotations\trimaps',0)  #这里必须设置0参数,表示单通道
img=cv2.imread(r'Abyssinian_1.png')  # 像素值是{1,2,3}plt.imshow(img)
plt.colorbar()
plt.show()  # 一定使用

cv2.imread()和cv2.imshow()

参考:https://blog.csdn.net/weixin_39190382/article/details/113615763
cv2.imread()不能读取中文路径,
必须设置参数是读取单通道图像,
需要将图像像素值映射到0-255

import cv2
import matplotlib.pyplot as plt
import os
import numpy as npdef image_normalization(img, img_min=0, img_max=255):  # 像素映射img = np.float32(img)epsilon = 1e-12img = (img - np.min(img)) * (img_max - img_min) / ((np.max(img) - np.min(img)) + epsilon) + img_minreturn imgos.chdir(r'F:\共享文件夹\论文编辑\简化FCN\annotations\annotations\trimaps')
img=cv2.imread(r'Abyssinian_1.png',0) # 不能访问中文路径
img = image_normalization(img)
# cv2.imshow('single_cannel',(img-1)*255.0/2.0),也可以使用,将1-3,映射到0-255
cv2.imshow('single_cannel',img)
cv2.waitKey(0)

cv2,PIL,plt,tensorflow方法图片显示及plt的的plt.colorbar()的使用需要注意相关推荐

  1. linux plt.show不显示图片,解决matplotlib库show()方法不显示图片的问题

    解决matplotlib库show()方法不显示图片的问题 最近使用python里的matplotlib库绘图,想在代码结束时显示图片看看,结果图片一闪而过,附上我原来代码: import matpl ...

  2. 【jpg和png区别】PIL和opencv读取、显示图片+归一化+transpose变换通道

    文章目录 1 图片说明 2 两种读取方式+显示 3 numpy中transpose的使用 4 数据类型转换+归一化 5 PIL.Image读取png和jpg有什么区别 1 图片说明 两张图片格式不同, ...

  3. Dataset之图片数据增强:设计自动生成汽车车牌图片算法(cv2+PIL)根据随机指定七个字符生成逼真车牌图片数据集(自然场景下+各种噪声效果)可视化

    Dataset之图片数据增强:设计自动生成汽车车牌图片算法(cv2+PIL)根据随机指定七个字符生成逼真车牌图片数据集(自然场景下+各种噪声效果)可视化 导读 设计自动生成汽车车牌图片算法,基于cv2 ...

  4. python去掉人像白边_python 使用plt画图,去除图片四周的白边方法

    用matplotlib.pyplot画的图,显示和保存的图片周围都会有白边,可以去掉.为了显示的更清楚,给图片加了红色的框 代码 "` import matplotlib.pyplot as ...

  5. html src 图片不显示图片,css中不用src也让图片显示的方法是什么?

    在网页中有两种调用图片的方法,分别是使用img标签和使用background-image属性引入图片,其中使用img标签引入图片需要使用src属性. css中不用src让图片显示的方法是使用backg ...

  6. axios获取图片显示_vue中使用axios post上传头像/图片并实时显示到页面的方法

    在前端开发中,为了更好的用户体验,在头像上传时会先将图片显示到页面然后点击保存按钮 完成图片的上传成功 代码部分有参考他人的写法. html代码: 请上传图片 js代码: //实时显示该图片在页面 g ...

  7. Hybris Storefront里产品图片显示不出来的分析方法

    在Hybris Backoffice里新建一个product,维护了一些图片信息,然而在Storefront上进行搜索时,无论结果列表,还是产品明细页面里,都没有对应的图片可以显示. 我的排查方法是, ...

  8. cv2 imshow窗口大小_cv2.imshow()图片无法显示

    在Pycharm和jupyter notebook中运行cv2.imshow()函数的时候,图片无法正常显示,是因为在运行cv2.imshow()之后,需要使用cv2.waitKey()来保持窗口的显 ...

  9. 小程序更换域名后发现图片显示不出来的问题解决方法

    问题描述:小程序更换域名后发现图片显示不出来的问题解决方法 试用范围:微信小程序 基础库 1.0.1 及以上版本 问题描述: 更换域名后发现图片显示不出来,同时微信公众平台配置了新域名,小程序中的ap ...

最新文章

  1. 在C# Express 2005中配置 NUnit
  2. php万能注入密码,php下的SQL注入万能用户名和密码
  3. react 中使用import()实现按需加载报错 解决方法 --‘import’ and ‘export’ may only appear at the top level
  4. python面试技巧_经典7大Python面试题!看完考官竟然给了我30k的薪资
  5. JavaWeb — session+实战项目
  6. 如何结束vbs的代码
  7. 鸿蒙系统官网电脑版,华为鸿蒙系统官方pc版下载-华为鸿蒙系统官方电脑pc版 -优盘手机站...
  8. Windows 7 Sp1 x64 无法安装英文语言包(已解决)
  9. Efficient algorithms for polyploid haplotype phasing 多倍体单体型分型的有效算法
  10. 吐血整理!跳槽字节跳动涨薪
  11. UML-类 图 (2)
  12. choco install deno报错
  13. linux 工具——终端分屏与vim分屏
  14. Docker镜像的原理
  15. java: -source 1.6 中不支持 diamond 运算符, (请使用 -source 7 或更高版本以启用 diamond 运算符)
  16. 微信小程序 环形进度条_微信小程序实现圆形进度条实例分享
  17. 职业规划:45岁之后,外企精英们去哪里?
  18. 小米10开始抓取日志怎么关闭_除了*#*#6485#*#*,小米手机还有这些神秘暗号
  19. Tensorflow安装方法 (一)【 使用国内镜像下载】
  20. IMU的数学模型与误差标定问题

热门文章

  1. C++ Reference: Standard C++ Library reference: C Library: cstdio: vsnprintf
  2. 《数据结构 思维导图》
  3. VPS、SPS、PPS、SS简介
  4. 硬件设计与实践:16位CPU设计
  5. 自学Python标准库(1)
  6. c语言作业 电影院选座系统,c语言编程 电影院票务系统.wps
  7. 【GCC】2: RTCP cc-feeback 抓包对比协议
  8. 开始读《C专家编程》
  9. MySQL约束条件和多表查询方式详解
  10. 设置css阴影和取消css阴影