Неожиданные результаты в scipy.ndimage.gaussian_laplace. Неподходящая 2D обработка - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь использовать фильтр gaussian_laplace для обработки изображений в python, но не могу понять, как указать ядро.Без этого я думаю, что анализ не работает должным образом.

Я проверил стандартную документацию (https://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.ndimage.filters.gaussian_laplace.html), но ничего не говорится об указании ядра

Рассмотрим следующие 8 битTIF-изображение в градациях серого:

https://imgur.com/nbfxWjB

, если бы я импортировал его в python и запустил фильтр gaussian_laplace с сигма 4, я получил следующие результаты:

from PIL import Image
from scipy.ndimage import gaussian_laplace
import numpy as np

file_path='White Spot.tif'
image_array=np.array(Image.open(file_path))
transformed=gaussian_laplace(image_array,4)
im = Image.fromarray(transformed)
im.save('transformed.TIF')

https://imgur.com/3mhpXI3

вы заметите несколько вещей, ребро не определяется равномерно в обоих направлениях. Левая и правая стороны круга выглядят по-разному сверху и снизу. Это не ожидаетсяпотому что это должен быть двухмерный анализ. Поэтому, если я транспонирую изображение до того, как проанализирую, а затем обратно транспонирую в исходное положение, оно должно выглядеть одинаково. Но, очевидно, это не так:

https://imgur.com/neZPDIM

Для типичного gaussian_laplace мне нужно было бы указать размер ядра, по которому свернут анализ, однако, такое значение не предваряетсяотправлено сюда.Может быть, если я выясню, как указать ядро, то смогу выяснить, почему анализ отличается в разных направлениях?

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

Спасибо за вашепомощь!

...