在numpy或skimag中分离n位色平面

2024-10-01 04:45:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我设法量化并抖动图像,每个像素的颜色索引都有一个8位二进制表示,比如ccmmyykk,其中用于打印的每个墨水(CMYK)都以每像素2位编码。在

如何将uint8的numpy数组拆分为4个数组,分别对应于每个墨水,理想的格式是将它们保存为单独的2位/像素tiff?在


Tags: 图像numpy编码颜色格式二进制像素数组
1条回答
网友
1楼 · 发布于 2024-10-01 04:45:22

您可以像这样使用^{}^{}

import numpy as np
from skimage.external.tifffile import imsave, imread

 # Mock image used for testing
img = np.asarray([[0b00011011, 0b01101100],
                  [0b10110001, 0b11000110]], dtype=np.uint8)

inks = {'C': 6, 'M': 4, 'Y': 2, 'K': 0}

for i in inks:
    power_of_two = 2**inks[i]
    layer = np.bitwise_and(img, 0b11*power_of_two)//power_of_two
    filename = 'ink-%s.tif' % (i.lower(),)
    imsave(filename, layer)

墨水被编码为2位整数,并以uint8的形式保存在单独的tiff中。在

演示

^{pr2}$

相关问题 更多 >