PIL读取图像颜色失真问题#RGB#灰度图

 作者:JasonChen
 时间:2019.4.27
 博主今天在做图像识别的项目,需要用到PIL包读取并显示图像,可是显示图像如下图所示:
在这里插入图片描述
 而原图像是这种:
在这里插入图片描述
 显然,图像颜色失真,注:"SS"是我加在图层上面的字符
通过参考其他博客的内容:总共得到两种bug:
 (1)需要说明的是:若图像的像素矩阵是三维的话,则PIL默认是RGB格式读取进来,若像素矩阵是二维的话,则会强制被认为是灰度图(“L”)格式,这和像素值大小无关,只和像素矩阵的维数有关,其中灰度图格式只处理[0,1]浮点型数值,若图像的像素值远远超过了1且不为三维的话,即造成图像失真。
  (2)若图像是三维的,但是读取进来的是BGR格式的话,需要将其转化为RGB格式,这里贴出PIL包转化的具体代码,其中pic_path是图像路径,需要导入PIL包:

from PIL import Image
image = Image.open(pic_path)
b, g, r = image.split()
image = Image.merge("RGB", (r, g, b))
plt.imshow(image)

  本次着重讨论解决第一种的方法:首先查看读取进来的信息:
在这里插入图片描述
 如上图所示:由于像素矩阵是二维的,默认打开的是灰度图格式(“L”),这里利用np.array()函数将其转化为数组的形式,然后发现像素值是属于[0, 255]范围,所以造成图像失真。
解决方案如下:
将二维数据转化为三维:只要在open()函数后面加上convert(“RGB”)就可以了,如下图所示:
在这里插入图片描述
在这里插入图片描述
 可以看到像素矩阵的前面两维度的大小均没有改变,只是简单的将二维格式中的每个像素值复制3次,从而扩展到第三维。
总结回顾
 下次遇到颜色失真问题,首先考虑方案1,open语句后面加convert(“RGB”),当然如果本身就是三维的话,你也可以将三维彩色图像转化为二维的灰度图convert(“L”);其次考虑方案2,将BGR转化为RGB格式的方法,这两种方法都用上,可以解决大部分颜色失真问题,PS:cv2.imread(path)函数中的图片路径path中不能包含中文,否则返回None!

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
淘淘图片批处理之星是一款操作简单、方便实用的全功能图片批处理系统。包括批量格式转换、批量脚本处理、批量文件改名、批量调整尺寸、批量制作缩略图、批量压缩JPG、批量合并图片、批量添加背景、批量截取图片、批量切割图片、批量上传文件、创建PDF文件、创建多页TIF、创建电子相册等功能。本软件提供近30种图像脚本处理命令(如调整对比度、添加水印等)供您任意组合使用!还可以让您轻松的将任意多的图像文件生成一个电子相册,并提供多达150种的动画显示效果,方便您欣赏自己的图片,并轻易实现与家人、朋友分享!支持多达11种(BMP,JPG,PNG,GIF,PSD,TIF等)的基本图像格式相互转换,如果加上与他们等价的格式,则支持的图像类型超过30种。能轻易的生成缩略图,调整尺寸、转换格式、添加水印一步到位!向导式的操作方式,轻易上手。所有的批处理操作都可以应用图像脚本处理命令,再复杂的操作也可以一步到位。 淘淘图片批处理之星能为您做什么?   批量文件改名:除了常规文件改名工具应有的功能外,她还可以只替换包含指定字符串的一部分,支持大小写转换,支持数字、大小写字母作为计数器,支持特殊字符的剔除与替换,支持修改文件的属性,支持修改文件的创建时间和最后修改时间。可以轻松清除或者替换掉文件名中的空格或者其它特殊字符。还提供了灵活的大小写转换机制。   批量添加水印:提供图片、文本、系统水印三大水印类别。每一类别都有丰富的选项供您调配水印效果,其中包括但不限于透明度、透明颜色、阴影、排列方式、边界融合。   批量格式转换:不仅可以将一种格式转换至另一种格式,还可以对每一种格式进行细微的调整。支持的基本图像格式有:BMP,JPG,PNG,EXIF,GIF,WMF,TGA,PCX,TIFF,PPM等。写入10个常用图像基本格式。加上其兼容格式,支持的格式数量达到30个左右。   批量压缩JPG:如果您需要一个120K的JPG文件,只需输入120, 本产品就可以帮您轻松获得。本功能市场上尚无其它产品提供。   批量调整尺寸:你可以快速、高质量的将图片的尺寸调整至你需要的尺寸。不管是输出到打印机、还是用来做屏保,或得到一个QQ头像,都仅需要简单的设置就可以了。 仅需简单的设置,就可以轻松的交换图像的宽度与高度;图像的宽度和高度可以分开设置,且可以指定只增加或减小尺寸。 创建电子相册:用来将图片文件编译到一个EXE文件中,并且可以通过执行该EXE文件查看其中的图片。选择您需要的文件,启动该功能向导,一个电子相册就诞生了。多达150种超酷的动态图片显示效果,定能让您流连忘返。 创建PDF文件: 您可以为单个文件生成单独的PDF文件,也可以将多张图片放入一个PDF中。PDF文件具有防复制、防篡改的功能。而且图像表现能力也非常的好。现在很多国际际间的合同、合作文件都通过PDF来传递、保存。是传递、保存珍贵图像资料 或扫描电子书籍的好选择。 批量制作缩略图:您可以方便的将大量的图片制作成便于网络上使用的缩略图。尺寸调整、格式转换、添加水印一气呵成。需要缩略图吗,让她代您完成吧。 批量上传图片:图片处理好了,要传到网上吗?使用该功能吧。只需选择文件,选择该命令,按向导的提示填入FTP帐号信息。 批量合并图片:将多张图片合成一张图片。不是简单的拼接,诸多选项可以让您轻松完成许多高难度的任务。 批量添加背景:将您的图片放到一个大图片上。 批量截取图片:从您的图片中截取出一个小图片。 批量切割图片:把您的图片分成许多小图片。每一小图片都是一个单独的文件。 批量脚本处理:本产品还提供了20多个脚本命令,来完成一些常用的图像处理操作。包括但不限于:图片水印、文字水印、系统水印、灰度化、二值化、自动色阶、伽玛校正、高斯模糊、锐化。更加强大的是,您可以设定只有符合某些条件的时,才执行特定的脚本。   调整图像分辨率(DPI):图像分辨率即图像中每单位打印长度显示的像素数目,通常用每英寸点数(DPI)表示,使用此软件您可以轻松地修改图片的分辨率,以使打印机打出最好质量的图片。 添加图片的标题(描述):您只需事先给每张图片命好文件名,就可以轻松的把每张图片的文件名批量添加到对应图片的任意位置作为该图片的标题(描述)。   淘淘图片批处理之星与其它类似的软件有什么不同?   淘淘图片批处理之星是一个整体解决方案,它将诸多单一的功能有机的整合在一起,让您的工作变得轻松。她能自动完成许多繁锁的工作,从而让您有更多的时间和精力专注于业务的发展。   淘淘图片批处理之星有哪些特色? 高集成度:集文件管理、处理、合成、切割、传输于一体。是一个真正的图片全能批处理软件。 简单易用:所有

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值