【发布时间】:2010-05-09 08:48:57
【问题描述】:
我正在使用 PIL 在 Python 中进行一些图像处理,我需要从一系列图像中提取亮度层,并使用 numpy 对其进行一些处理,然后将编辑后的亮度层放回图像中并保存.问题是,我似乎无法以 YCbCr 格式获得任何有意义的图像表示,或者至少我不明白 PIL 在 YCbCr 中给了我什么。 PIL 文档声称 YCbCr 格式提供了三个通道,但是当我使用 np.asarray 从图像中获取数据时,我得到了 4 个通道。好的,所以我认为一个必须是 alpha。
这是我用来测试这个过程的一些代码:
import Image as im
import numpy as np
pengIm = im.open("Data\\Test\\Penguins.bmp")
yIm = pengIm.convert("YCbCr")
testIm = np.asarray(yIm)
grey = testIm[:,:,0]
grey = grey.astype('uint8')
greyIm = im.fromarray(grey, "L")
greyIm.save("Data\\Test\\grey.bmp")
我期待我的图像的灰度版本,但我得到的是这个混乱的混乱:
谁能向我解释我哪里出错了? matlab 中的相同代码完全符合我的预期。
【问题讨论】:
-
我遇到了同样的问题。你如何解决它。我认为使用 getpixel 效率不高
-
以防万一其他人需要获取色度,请参阅stackoverflow.com/questions/24610775/…
标签: python python-imaging-library