gradientweight

Вычислите веса для пикселей изображения на основе градиента изображения

Описание

W = gradientweight(I) вычисляет вес пикселей для каждого пикселя на изображении I на основе величины градиента в этом пикселе и возвращает массив весов W. Вес пикселя обратно связан со значениями градиента в местоположении пикселя. Пиксели с малой градиентной величиной (гладкие области) имеют большой вес, а пиксели с большой градиентной величиной (например, на ребрах) имеют небольшой вес.

W = gradientweight(I,sigma) использует sigma как стандартное отклонение для производной Гауссова, которое используется для вычисления градиента изображения.

пример

W = gradientweight(___,Name,Value) возвращает массив весов W использование пар "имя-значение" для управления аспектами расчета веса.

Примеры

свернуть все

Этот пример сегментирует изображение с помощью метода быстрого марширования на основе весов, полученных из градиента изображения.

Чтение изображения и его отображение.

I = imread('coins.png');
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Вычислите веса на основе градиента изображения.

sigma = 1.5;
W = gradientweight(I, sigma, 'RolloffFactor', 3, 'WeightCutoff', 0.25);

Выберите seed местоположение.

R = 70; C = 216;
hold on; 
plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);
title('Original Image with Seed Location')

Figure contains an axes. The axes with title Original Image with Seed Location contains 2 objects of type image, line.

Сегментируйте изображение с помощью массива весов.

thresh = 0.1;
[BW, D] = imsegfmm(W, C, R, thresh);
figure, imshow(BW)
title('Segmented Image')
hold on; 
plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);

Figure contains an axes. The axes with title Segmented Image contains 2 objects of type image, line.

Матрица геодезических расстояний D может быть пороговое значение с использованием различных порогов, чтобы получить различные результаты сегментации.

figure, imshow(D)
title('Geodesic Distances')
hold on; 
plot(C, R, 'r.', 'LineWidth', 1.5, 'MarkerSize',15);

Figure contains an axes. The axes with title Geodesic Distances contains 2 objects of type image, line.

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

свернуть все

Полутоновое изображение, заданное как числовая матрица.

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

Стандартное отклонение для производной Гауссова, заданное как положительное число.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: W = gradientweight(I,1.5,'RolloffFactor',3,'WeightCutoff',0.25);

Выходной весовой коэффициент отката, заданный как разделенная разделенными запятой парами, состоящая из 'RolloffFactor' и положительная скалярная величина класса double. Управляет тем, как быстро значения веса падают как функция от величины градиента. При рассмотрении как 2-D график значения интенсивности пикселей могут изменяться постепенно на ребрах областей, создавая пологий уклон. В сегментированном изображении может потребоваться более четкое определение ребра. Используя коэффициент отклонения, вы управляете наклоном кривой значения веса в точках, где значения интенсивности начинают изменяться. Если вы задаете высокое значение, выходные значения веса резко падают вокруг ребер гладких областей. Если вы задаете низкое значение, вес выхода имеет более постепенное падение вокруг ребер. Предлагаемая область значений для этого параметра [0.5 4].

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

Порог для значений веса, заданное как разделенная разделенными запятой парами, состоящая из 'WeightCutoff' и положительное число в области значений [1e-3 1]. Если вы используете этот параметр, чтобы задать порог значений веса, он подавляет любые значения веса, меньше заданного вами значения, устанавливая эти пиксели на небольшое постоянное значение (1e-3). Этот параметр может быть полезен в улучшении точности выхода, когда вы используете выходной массив весов W как вход в функцию сегментации метода быстрого марша, imsegfmm.

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

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

свернуть все

Массив весов, возвращенный как числовой массив того же размера, что и входа изображение, I. Массив весов имеет класс double, если только I является single, в этом случае это класс single.

Совет

  • gradientweight использует операции с плавающей точкой двойной точности для внутренних расчетов для всех классов I, кроме тех случаев, когда I является классом single, в каком случае gradientweight использует внутренние операции с плавающей точкой с одной точностью.

См. также

|

Введенный в R2014b