Медианный фильтр обнуляет значение массива - PullRequest
0 голосов
/ 14 октября 2018

У меня есть изображение, которое я преобразовал в массив numy, и после этого применил медианный фильтр с использованием библиотеки scipy, который изменяет все элементы этого ndarray на ноль. Я не знаю, почему это происходит, и я предполагаю, что этого не должно происходить.

from PIL import Image
import numpy as np
from scipy.signal import medfilt

train = np.array(Image.open("26.jpg").getdata()  ,dtype=float).reshape(176, 208, 1)


s = np.sum(train, axis =0)
print(s)

train = medfilt(train, kernel_size= 3) 
s1 = np.sum(train, axis =0)
print(s1)

Из-за этой проблемы я не могу перейти к дальнейшей обработке изображения.

1 Ответ

0 голосов
/ 14 октября 2018

medfilt эффективно нулевые поля на границах.Поскольку у вас есть одно измерение размера 1, в этом направлении каждый пиксель зажат между двумя нулями, которые превосходят все.

Попробуйте опустить третье измерение

train = np.array(Image.open("26.jpg").getdata()  ,dtype=float).reshape(176, 208)

, и все будет в порядке.

При необходимости вы можете добавить его после фильтрации.

...