imgradientxy

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

Описание

пример

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

пример

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

Примеры

свернуть все

Чтение изображения в рабочую область.

I = imread('coins.png');

Вычислите x - и y-направленные градиенты с помощью оператора градиента Prewitt.

[Gx, Gy] = imgradientxy(I,'prewitt');

Отображение градиентов направления.

figure
imshowpair(Gx, Gy, 'montage');
title('Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method')

Figure contains an axes. The axes with title Directional Gradients: x-direction, Gx (left), y-direction, Gy (right), using Prewitt method contains an object of type image.

Чтение изображения в рабочую область.

I = imread('coins.png');

Вычислите x - и y-направленные градиенты. По умолчанию imgradientxy использует оператор градиента Собеля.

[Gx,Gy] = imgradientxy(I);

Отображение градиентов направления.

imshowpair(Gx,Gy,'montage')
title('Directional Gradients Gx and Gy, Using Sobel Method')

Figure contains an axes. The axes with title Directional Gradients Gx and Gy, Using Sobel Method contains an object of type image.

Вычислите величину и направление градиента с помощью градиентов направления.

[Gmag,Gdir] = imgradient(Gx,Gy);

Отобразите величину и направление градиента.

imshowpair(Gmag,Gdir,'montage')
title('Gradient Magnitude (Left) and Gradient Direction (Right)')

Figure contains an axes. The axes with title Gradient Magnitude (Left) and Gradient Direction (Right) contains an object of type image.

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

свернуть все

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

Типы данных: single | double | int8 | int32 | uint8 | uint16 | uint32 | logical

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

МетодОписание
'sobel'

Оператор градиента Собеля. Градиент пикселя является взвешенной суммой пикселей в окрестности 3 на 3. В вертикальном (y) направлении веса:

[ 1  2  1 
  0  0  0 
 -1 -2 -1 ]
В x направлении веса транспонируются.

'prewitt'

Оператор градиента Prewitt. Градиент пикселя является взвешенной суммой пикселей в окрестности 3 на 3. В вертикальном (y) направлении веса:

[ 1  1  1 
  0  0  0 
 -1 -1 -1 ]
В x направлении веса транспонируются.

'central'

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

'intermediate'

Средний градиент различия. Градиентом пикселя является различие между соседним пикселем и текущим пикселем. В y направлении dI/dy = I(y+1) - I(y).

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

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

свернуть все

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

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

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

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

Совет

  • При применении оператора градиента на контурах изображения значения за пределами изображения принимаются равными ближайшему значению границы изображения.

Алгоритмы

Алгоритмический подход состоит в том, чтобы вычислить угловые градиенты относительно x оси и y оси. Ось x задана вдоль столбцов, идущих вправо, а ось y - вдоль строк, идущих вниз.

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

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

Введенный в R2012b
Для просмотра документации необходимо авторизоваться на сайте