【问题标题】:Python : Mask an image so that only pixels outside the maskPython:遮罩图像,以便只有遮罩之外的像素
【发布时间】:2015-04-21 18:16:18
【问题描述】:

我正在尝试使用 python 对强度图像进行遮罩,以便遮罩之外的区域变为零。我正在为多个区域的分段图像执行此操作。我有一个边界框和感兴趣片段的二进制图像(见下面的代码)

这是我的代码摘录

I2 = 强度图像

Mask = 二进制掩码

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

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

过去我已经在 matlab 中成功实现了这一行

I3 = I2.*uint8(Mask);

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

如果我遗漏了一些明显的东西,我们深表歉意

【问题讨论】:

  • 你能粘贴你收到的错误吗?

标签: python image image-processing image-segmentation


【解决方案1】:

您的 II2 似乎是 Image 对象,而不仅仅是 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 )

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 1970-01-01
    • 2018-05-29
    • 2016-06-09
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多