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

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

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

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

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

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

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

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

свернуть все

Введите изображение, заданное как полутоновое изображение. MustBeNonsparse.

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

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

Пример: sigma = 1.0; W = gradientweight(I, sigma)

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

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

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

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

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

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

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

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

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

свернуть все

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

Советы

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

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

|

Введенный в R2014b