Python:屏蔽图像,使屏幕外只有像素

时间:2013-11-29 17:48:47

标签: python image image-processing image-segmentation

我试图屏蔽强度图像,以便使用python将掩码外的区域变为零。我这样做是为了分割多个区域的图像。我有一个感兴趣的片段的边界框和二进制图像(见下面的代码)

以下是我的代码摘录

I2 =强度图片

Mask =二元掩码

I2 = I.crop(RegionsBox[10]['BoundingBox'])
Mask = RegionsImage[10]['Image']
I2[Mask==0]=0

最后一行返回错误....

我过去用matlab在matlab中成功实现了这个

I3 = I2.*uint8(Mask);

有谁知道Python中的等价物是什么?

如果我错过了一些明显的东西,请道歉

1 个答案:

答案 0 :(得分:0)

您的II2似乎是图片对象,而不仅仅是nd-arrays。 您可以使用numpy将I2转换为数组,将掩码应用于它,然后将其转换回Image对象:

import numpy as np
from PIL import Image
ndI2 = np.ararray( I2 )
ndI2 = ndI2 * Mask # apply the mask as you applied it in Matlab
I3 = Image.frombuffer( I2.mode, I2.size, ndI2, "raw", I2.mode, 0, 1 )