相关疑难解决方法(0)

Python映像:YCbCr问题

我正在使用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")
Run Code Online (Sandbox Code Playgroud)

我期望图像的灰度版本,但是我得到的是这个混乱的混乱:

http://i.imgur.com/zlhIh.png

有人可以向我解释我要去哪里哪里吗?matlab中的相同代码完全符合我的预期。

python python-imaging-library

5
推荐指数
1
解决办法
4846
查看次数

标签 统计

python ×1

python-imaging-library ×1