gradientweight

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

Синтаксис

W = gradientweight(I)
W = gradientweight(I,sigma)
W = gradientweight(___,Name,Value)

Описание

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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