Вычисление коэффициентов детализации без понижающей дискретизации - PullRequest
0 голосов
/ 07 апреля 2019

Вейвлет-преобразование позволяет нам вычислять коэффициенты детализации сигнала или изображения. Он также уменьшает изображение на каждом уровне разложения.

Я хочу вычислить коэффициенты детализации без понижающей дискретизации. Я хочу использовать фильтр нижних частот G для извлечения коэффициентов детализации, как описывает фильтр квадратурных зеркал, минус дискретизация вниз. Тем не менее, у меня есть только этот фильтр в 1D: [-1/sqrt(2), 1/sqrt(2)]

Как я понимаю, я могу сначала применить G к строкам изображения, а затем к столбцам. Как я могу выполнить это умножение в Numpy? Мое изображение имеет размер 768x768.

1 Ответ

1 голос
/ 07 апреля 2019

Если я правильно понимаю ваш вопрос, то мы можем использовать вещание для этого, но перед этим мы должны выложить наш первоначальный фильтр, чтобы он соответствовал одному из измерений нашего изображения. И, к счастью, изображение здесь является квадратным изображением. Итак, многое становится проще:

In [70]: filter_ = np.array([-1/np.sqrt(2), 1/np.sqrt(2)])

In [71]: filter_
Out[71]: array([-0.70710678,  0.70710678])

# tile the initial array to match the dimensions of image
In [72]: filter_1d = np.tile(filter_, 768//2)

In [73]: filter_1d.shape
Out[73]: (768,)

In [74]: img = np.random.random_sample((768, 768))

# apply the filter on the image
In [76]: filtered = np.multiply(img, filter_1d)

In [77]: filtered.shape
Out[77]: (768, 768)
...