imgradient

Найдите градиентную величину и направление 2-D изображения

Описание

[Gmag,Gdir] = imgradient(I) возвращает величину градиента, Gmag, и направление градиента, Gdir, из 2-D полутонового или бинарного изображения I.

пример

[Gmag,Gdir] = imgradient(I,method) возвращает величину и направление градиента с помощью заданного method.

пример

[Gmag,Gdir] = imgradient(Gx,Gy) возвращает величину и направление градиента от направленных градиентов Gx и Gy в x и y направлениях, соответственно.

Примеры

свернуть все

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

I = imread('coins.png');

Вычислите величину и направление градиента, задав оператор градиента Prewitt.

[Gmag, Gdir] = imgradient(I,'prewitt');

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

figure
imshowpair(Gmag, Gdir, 'montage');
title('Gradient Magnitude, Gmag (left), and Gradient Direction, Gdir (right), using Prewitt method')

Figure contains an axes. The axes with title Gradient Magnitude, Gmag (left), and Gradient Direction, Gdir (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).

'roberts'

Градиентный оператор Робертса. Градиент пикселя является различием между соседними по диагонали пикселями. Для градиентов в одном направлении веса:

[ 1  0 
  0 -1 ]
В ортогональном направлении веса поворачиваются вдоль вертикальной оси.

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

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

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

Вертикальный градиент, заданный как числовая матрица того же размера, что и Gx. Вертикальная (y) ось указывает в направлении увеличения индексов строк. Вы можете использовать imgradientxy функция для вычисления Gy.

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

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

свернуть все

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

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

Направление градиента, возвращенное как числовая матрица того же размера, что величина градиента Gmag. Gdir содержит углы в степенях в области значений [-180, 180] измеряемый против часовой стрелки от положительного x - ось. (Ось x указывает в направлении увеличения индексов столбцов.) Gdir является классом double, если только вход изображение I или направленные градиенты имеют класс single, в этом случае это класс single.

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

Совет

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

Алгоритмы

Алгоритмический подход, принятый в imgradient для каждого из перечисленных градиентных методов необходимо сначала вычислить направленные градиенты, Gx и Gy, в x и y направлениях, соответственно. Горизонтальная (x) ось указывает в направлении увеличения индексов столбцов. Вертикальная (y) ось указывает в направлении увеличения индексов строк. Затем градиентные величины и направление вычисляются из их ортогональных компонентов Gx и Gy.

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

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

Введенный в R2012b