问题描述
导入的库:
%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