如何解决如何根据 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 举报,一经查实,本站将立刻删除。