внедрить 3d оператор sobel - PullRequest
       3

внедрить 3d оператор sobel

2 голосов
/ 07 сентября 2011

В настоящее время я работаю над удалением неоднородности из тома данных МРТ, который содержит воксели. Я хочу применить оператор sobel к этим томам, чтобы найти градиент. Я знаком с 2d sobel mask и соседством 2d изображений.

трезвая маска: 1 2 1 0 0 0 -1 -2 -1 1 0 -1 2 0 -2 1 0 -1

окрестность (x, y): (x + 1, y-1) (x + 1, y) (x + 1, y + 1) (х, у-1) (х, у) (х, у + 1) (х-1, у-1) (х-1, у) (х-1, у + 1)

Теперь я хочу применить его на 3d. Пожалуйста, предложите мне, как мне поступить ?? Спасибо.

1 Ответ

5 голосов
/ 15 сентября 2011

В Википедии есть хорошее введение: http://en.wikipedia.org/wiki/Sobel_operator

По сути, поскольку фильтр sobel является отделимым, вы можете применять 1D-фильтры в каждом из направлений x, y и z последовательно. Этими фильтрами являются h (x) и h '(x), как указано в википедии. Это позволит вам получить края в направлении, где вы применили h '(x).
Например, если вы выполните h (x) * h (y) * h '(z), вы получите края в направлении z.

В качестве альтернативы (и дороже) вы можете вычислить все ядро ​​3D 3x3x3 и применить свертку в 3D. Ядро для направления z также приведено в википедии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...