Привет, используя пример изображения phantom.png Я выполняю некоторые операции с библиотеками numpy + skimage и после некоторых модификаций, которые запрашивает последнее упражнение:
Сжать размер центральных пятен на 50% и построить окончательное изображение.
Это шаги, которые я делаю раньше.
Я читаю изображение, делая
img = imread(os.path.join(data_dir, 'phantom.png'))
Затем примените следующее, чтобы сделать его черно-белым
img[np.less_equal(img[:,:,0],50)] = 0
img[np.greater_equal(img[:,:,0],51)] = 255
Взял пару кусочков изображения (черные пятна) с заданными координатами
img_slice=img.copy()
img_slice=img_slice[100:300, 100:200]
img_slice2=img.copy()
img_slice2=img_slice2[100:300, 200:300]
Теперь переверните их
img_slice=np.fliplr(img_slice)
img_slice2=np.fliplr(img_slice2)
И положить их обратно в копию изображения
img2=img.copy()
img2[100:300, 200:300]=img_slice
img2[100:300, 100:200]=img_slice2
И это результирующее изображение перед последним ("сжать") упражнением:
Затем меня просят «уменьшить» черные пятна с помощью метода numpy.compress
.
Ожидаемый результат после использования метода «компресс» - следующее изображение (скриншот), где черные пятна уменьшены на 50%:
Но я понятия не имею, как использовать метод numpy.compress
над изображением или срезами изображения, чтобы получить этот результат, даже не близко, все, что я получаю, это просто куски изображения, которые выглядят как обрезанные или растянутые части его .
Буду признателен за любую помощь / объяснение того, как метод numpy.compress
работает в этом вопросе, и даже если возможно использовать его для этого.