imgradient

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

Описание

[Gmag,Gdir] = imgradient(I) возвращает величину градиента, Gmag, и направление градиента, Gdir, из 2D полутонового или бинарного изображения 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-directional градиенты. По умолчанию, imgradientxy использует оператора градиента Sobel.

[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.

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

свернуть все

Введите изображение в виде 2D полутонового или 2D бинарного изображения.

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

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

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

Оператор градиента 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 аргумент используется. Например, с ядром Sobel, коэффициентом нормализации является 1/8 для Prewitt, это - 1/6, и для Робертса это - 1/2.

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

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

| | | |

Представленный в R2012b