imgradientxyz

Найдите направленные градиенты 3-D изображения

Синтаксис

[Gx,Gy,Gz] = imgradientxyz(I)
[Gx,Gy,Gz] = imgradientxyz(I,method)

Описание

пример

[Gx,Gy,Gz] = imgradientxyz(I) возвращает направленные градиенты Gx, Gy и Gz 3-D полутонового или двухуровневого изображения I.

[Gx,Gy,Gz] = imgradientxyz(I,method) вычисляет направленные градиенты с помощью заданного method.

Примеры

свернуть все

Считайте 3-D данные и подготовьте их к обработке.

volData = load('mri');
sz = volData.siz;
vol = squeeze(volData.D);

Вычислите направленные градиенты.

[Gx, Gy, Gz] = imgradientxyz(vol);

Визуализируйте направленные градиенты как монтаж.

figure, montage(reshape(Gx,sz(1),sz(2),1,sz(3)),'DisplayRange',[])
title('Gradient magnitude along X')

 
figure, montage(reshape(Gy,sz(1),sz(2),1,sz(3)),'DisplayRange',[])
title('Gradient magnitude along Y')

 
figure, montage(reshape(Gz,sz(1),sz(2),1,sz(3)),'DisplayRange',[])
title('Gradient magnitude along Z')

Входные параметры

свернуть все

Введите изображение, заданное как 3-D полутоновое изображение или 3-D двухуровневое изображение.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Оператор градиента, заданный как одно из следующих значений.

Значение

Значение

'sobel'

Оператор градиента Sobel. Градиент пикселя является взвешенной суммой пикселей в 3 3х3 окружением. Например, в глубине (z) направление, веса в этих трех плоскостях:

плоский z-1плоский zплоский z+1
[ 1  3  1 
  3  6  3 
  1  3  1 ]    
[ 0  0  0 
  0  0  0 
  0  0  0 ]    
[ -1  -3  -1 
  -3  -6  -3 
  -1  -3  -1 ]    

'prewitt'

Оператор градиента Prewitt. Градиент пикселя является взвешенной суммой пикселей в 3 3х3 окружением. Например, в глубине (z) направление, веса в этих трех плоскостях:

плоский z-1плоский zплоский z+1
[ 1  1  1 
  1  1  1 
  1  1  1 ]    
[ 0  0  0 
  0  0  0 
  0  0  0 ]    
[ -1  -1  -1 
  -1  -1  -1 
  -1  -1  -1 ]    

'central'

Центральный градиент различия. Градиент пикселя является взвешенным различием соседних пикселей. Например, в глубине (z) направление, dI/dz = (I(z+1) - I(z-1))/2.

'intermediate'

Промежуточный градиент различия. Градиент пикселя является различием между смежным пикселем и текущим пикселем. Например, в глубине (z) направление, dI/dz = I(z+1) - I(z).

При применении оператора градиента на контурах изображения imgradientxyz принимает, что значения вне границ изображения равны самому близкому значению цвета границы изображения. Это поведение подобно опции контура 'replicate' в imfilter.

Типы данных: char | string

Выходные аргументы

свернуть все

Горизонтальный градиент, возвращенный как числовая матрица, одного размера как изображение I. Горизонталь (x) ось указывает в направлении увеличивающихся индексов столбца. Gx имеет класс double, если входное изображение, I имеет класс single, в этом случае Gx, не имеет класса single.

Типы данных: single | double

Вертикальный градиент, возвращенный как числовая матрица, одного размера как изображение I. Вертикаль (y) ось указывает в направлении увеличивающихся индексов строки. Gy имеет класс double, если входное изображение, I имеет класс single, в этом случае Gy, не имеет класса single.

Типы данных: single | double

Градиент глубины, возвращенный как 3-D числовой массив, одного размера как изображение I. Глубина (z) ось указывает в направлении увеличения плоских индексов. Gz имеет класс double, если входное изображение, I имеет класс single, в этом случае Gz, не имеет класса single.

Алгоритмы

imgradientxyz не нормирует вывод градиента. Если область значений выходного изображения градиента должна совпадать с областью значений входного изображения, считайте нормализацию изображения градиента, в зависимости от аргумента method используемой. Например, с ядром Sobel, коэффициентом нормализации является 1/44 для Prewitt, коэффициентом нормализации является 1/18.

Расширенные возможности

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

| |

Введенный в R2016a