exponenta event banner

imgradient

Поиск величины градиента и направления 2-D изображения

Описание

[Gmag,Gdir] = imgradient(I) возвращает величину градиента, Gmagи направление градиента, Gdir, из 2-х оттенков серого или бинарного изображения 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-е оттенки серого или 2-е бинарное изображение.

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

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

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

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

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

'prewitt'

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

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

'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