scipy.ndimage.

binary_hit_or_miss#

scipy.ndimage.binary_hit_or_miss(входные данные, structure1=None, structure2=None, вывод=None, origin1=0, origin2=None, *, оси=None)[источник]#

Многомерное бинарное преобразование «попадание или промах».

Преобразование "попадание-промах" находит местоположения заданного шаблона внутри входного изображения.

Параметры:
входные данныеarray_like (приводится к булевым значениям)

Бинарное изображение, в котором нужно обнаружить шаблон.

structure1array_like (приводится к булевым значениям), опционально

Часть структурирующего элемента, которая должна быть подогнана к переднему плану (ненулевым элементам) входные данные. Если значение не указано, выбирается структура квадратной связности 1.

structure2array_like (приводится к булевым значениям), опционально

Вторая часть структурирующего элемента, которая должна полностью отсутствовать на переднем плане. Если значение не предоставлено, используется дополнение structure1 берётся.

выводndarray, необязательно

Массив той же формы, что и входной, в который помещается результат. По умолчанию создаётся новый массив.

origin1int или кортеж ints, опционально

Размещение первой части структурирующего элемента structure1, по умолчанию 0 для центрированной структуры.

origin2int или кортеж ints, опционально

Размещение второй части структурирующего элемента structure2, по умолчанию 0 для центрированной структуры. Если указано значение для origin1 и не для origin2, затем origin2 установлено в origin1.

осикортеж int или None

Оси, по которым применяется фильтр. Если None, входные данные фильтруется по всем осям. Если origin1 или origin2 если предоставлены кортежи, их длина должна соответствовать количеству осей.

Возвращает:
binary_hit_or_missndarray

Преобразование "попадание или промах" для входные данные с заданным структурирующим элементом (structure1, structure2).

Смотрите также

binary_erosion

Ссылки

Примеры

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.zeros((7,7), dtype=int)
>>> a[1, 1] = 1; a[2:4, 2:4] = 1; a[4:6, 4:6] = 1
>>> a
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 0, 0, 0],
       [0, 0, 1, 1, 0, 0, 0],
       [0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 0, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> structure1 = np.array([[1, 0, 0], [0, 1, 1], [0, 1, 1]])
>>> structure1
array([[1, 0, 0],
       [0, 1, 1],
       [0, 1, 1]])
>>> # Find the matches of structure1 in the array a
>>> ndimage.binary_hit_or_miss(a, structure1=structure1).astype(int)
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 1, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> # Change the origin of the filter
>>> # origin1=1 is equivalent to origin1=(1,1) here
>>> ndimage.binary_hit_or_miss(a, structure1=structure1,\
... origin1=1).astype(int)
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, 0, 0, 0, 0]])