Документация Engee

erode

Оператор расширения erode, по сути, представляет собой фильтр минимума. Это базовое понятие в математической морфологии — многие операции строятся на основе операторов erode и dilate.

using ImageMorphology
using TestImages
using ImageBase
using ImageShow

img = restrict(testimage_dip3e("fig1005")) # маска паяных соединений
2410187421

Для каждого пикселя расширение находит минимальное из значений пикселей в его окрестностях. В математике erode(A, Ω) определяется как = \inf{A[p+o] | o \in \Omega}], где Ω — это структурирующий элемент.

Простейший случай использования — erode(img; [dims], [r]), где dims и r определяют форму окрестности.

out1 = erode(img) # по умолчанию: все пространственные измерения, r=1, СЭ прямоугольной формы
out2 = erode(img; dims=(2,)) # применяется только ко второму измерению
out3 = erode(img; r=5) # половинный размер r=5
mosaic(out1, out2, out3; nrow=1)
4183780889

Здесь strel_box используется для создания структурирующего элемента прямоугольной формы. Вы также можете предоставить пользовательский СЭ через интерфейс erode(img, se).

out1 = erode(img, strel_box((3, 3))) # СЭ по умолчанию для `erode(img)`
se = centered(Bool[1 1 1; 1 1 0; 0 0 0]) # сопоставление с левым верхним участком
out2 = erode(img, se)
mosaic(out1, out2; nrow=1)
1266506881

Также доступен выполняемый на месте вариант erode!, например

out1 = similar(img)
erode!(out1, img)

out2 = similar(img)
erode!(out2, img, strel_diamond((3, 3)))
nothing #скрыть

Дополнительные материалы

erode — это двойственный оператор по отношению к dilate в следующем смысле:

complement.(erode(img)) == erode(complement.(img))
false

Для массивов логических значений и симметричных СЭ эрозия сводится к вычитанию множеств по Минковскому: .

Более полную и точную документацию см. на странице справки по erode.


Эта страница была создана с помощью DemoCards.jl и Literate.jl.