imgradientxy

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

Описание

пример

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

Опционально можно вычислить направленные градиенты с помощью графического процессора (требует Parallel Computing Toolbox™).

пример

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

Примеры

свернуть все

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

I = imread('coins.png');

Вычислите x-и y-directional градиенты с помощью оператора градиента 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')

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

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')

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

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

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

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

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

свернуть все

Введите изображение в виде 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).

Типы данных: 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