微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据 numpy 中给定的条件更改特定范围的像素?

如何解决如何根据 numpy 中给定的条件更改特定范围的像素?

导入的库:

    %matplotlib inline
    import numpy as np
    from scipy import misc
    import imageio
    import matplotlib.pyplot as plt
    from skimage import data

就像我创建了一个

    low_value_filter= dogs2 < 80

并且做到了:

     dogs2[low_value_filter]=0 

所以图像中像素值小于80的所有像素都变成黑色。 我想将 low_value_filter 添加到图像的右半部分(或实际上是特定范围的像素)而不是整个图像。下面是我所做的一些尝试的图片

This is the image after adding a circular mask Low_value_filter to whole image Attempt 1Attempt 2Attempt 3

编辑:

     center_col= total_cols/2

解决方法

嘿,我找到了解决这个问题的方法。

创建一个与图像形状相同的零数组:

low_value_filter = np.zeros_like(dogs)

选择要添加过滤器的图像范围:

low_value_filter[upper:lower,left:right] = dogs[upper:lower,left:right] < 80 (这将使 low_value_filter 成为与您选择的范围相关的 0 和 1 数组)

现在,只需将过滤器作为 bool 类型的索引范围添加到您的图像中,并将其设置为您想要的任何像素值(在这种情况下我选择了 0)

dogs[low_value_filter.astype(bool)] = 0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。