Стереть/расширить изображение с элементом структурирования нулей

Если у меня есть элемент структурирования, он выглядит так (начало координат находится в центре SE):

0  0  0
0  0  0 
0  0  0

Если я выполняю эрозию/расширение бинарного изображения, результатом будет либо 0, либо 1. Может кто-нибудь объяснить мне это? (Проверка Matlab)
Большое спасибо.


person Xitrum    schedule 01.01.2013    source источник


Ответы (1)


У вас есть совершенно действующий SE. Это плоский квадрат, общепринятый и доступный в каждой библиотеке обработки изображений.

Теперь важно понять разницу и сходство между плоскими и неплоскими элементами структурирования (или функциями структурирования). Сходство в том, что они действуют в определенной окрестности. Для элементарного квадратного элемента окрестность может быть представлена ​​матрицей 3x3, где каждый элемент находится в окрестности элемента (например, для ромба SE это тоже будет матрица 3x3, но углы не будут принадлежать матрице 3x3). район). В Matlab это конкретное отношение соседства выражается ones(3, 3) или просто [1 1 1; 1 1 1; 1 1 1]. Разница между плоским и неплоским SE заключается в том, что делает функцию strel в Matlab такой, какая она есть. Неплоский SE подразумевает, что он может относиться к соседям по-разному, поэтому он не полагается исключительно на значение 0 (определения эрозии и расширения немного изменены, чтобы справиться с этой ситуацией). Например, квадратный SE правильно определен в Matlab как strel('arbitrary', ones(3, 3), zeros(3, 3)) (указание zeros(3, 3) в качестве второго параметра в основном является ошибкой, поскольку вы говорите, что тогда у вас нет соседей). С другой стороны, неплоский квадрат можно определить бесконечным числом способов, одним из которых может быть strel('arbitrary', ones(3, 3), [-1 -1 -1; -1 0 -1; -1 -1 -1]).

Подводя итог, вы, скорее всего, используете strel неправильно.

person mmgp    schedule 01.01.2013