我有一堆图像,其中绝大多数是彩色(rgb)图像。我需要在他们实验室色彩空间的三个不同频道中应用一些空间特征。通过rgb2gray,从RGB颜色空间到Lab空间的转换非常简单。然而,当图像是灰度时,这自然会失败(只由一个通道组成,数值表示是double,uint8,任何真正的东西)。
我熟悉的事实是,“亮度”(L)通道的实验室颜色空间本质上是灰度的原始RGB图像。然而,这个问题有着不同的性质,我想问的是:给定一个已经是灰度的图像,我会在实验室的颜色空间中得到L通道。a和b通道应该是吗?应该是零吗?下面的示例使用预构建的“辣椒”图像,显示了这样做的视觉效果:
I = imread('pep
我正在尝试将一些小的PNG图像从32位颜色模式转换为索引颜色模式。
对于彩色图像,我运行命令convert IMGS/FLAME.png INDEXED_IMGS/FLAME.png,它转换得很好。对于只有灰度颜色的图像,我运行了相同的命令(文件名明显改变了),但我收到了警告:
convert: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG 'INDEXED_IMGS/SHADOW.png' @ warning/png.c/MagickPNGWarnin
所以我制作了这个脚本,它把图像转换成灰度。
我知道许多模块可以像.convert(“灰色”)一样自动完成这一任务,但我想自己手动完成,以了解更多关于python编程的知识。
它工作正常,但它非常慢,对于一个200 pX200p图像,它需要10秒,所以,我能修改什么使它更快?
它的工作原理是这样的,它需要一个像素,计算R,G和B值的平均值,将这三个值设置为平均值,每一个增加40个以获得更多的亮度,并写入像素。以下是代码:
import imageio
import os
from PIL import Image, ImageDraw
from random import randrange