graydiffweight

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

Синтаксис

W = graydiffweight(I,refGrayVal)
W = graydiffweight(I,mask)
W = graydiffweight(I,C,R)
W = graydiffweight(V,C,R,P)
W = graydiffweight(___, Name,Value)

Описание

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

Вес пикселя обратно пропорционально связан с абсолютным значением полутонового различия в интенсивности в пиксельном местоположении. Если различие является небольшим (значение интенсивности близко к refGrayVal), значение веса является большим. Если различие является большим (значение интенсивности, очень отличающееся от refGrayVal), значение веса является маленьким.

W = graydiffweight(I,mask) вычисляет пиксельные веса, где ссылочное полутоновое значение интенсивности является средним значением значений интенсивности всех пикселей в I, которые отмечены как логический true в mask. Используя среднее значение нескольких пикселей, чтобы вычислить ссылочное полутоновое значение интенсивности может быть более эффективным, чем использование одного ссылочного значения интенсивности, как в предыдущем синтаксисе.

W = graydiffweight(I,C,R) вычисляет пиксельные веса, где ссылочное полутоновое значение интенсивности является средним значением значений интенсивности пиксельных местоположений, заданных векторами C и R. C и R содержат столбец и индексы строки пиксельных местоположений, которые должны быть допустимыми пиксельными индексами в I.

W = graydiffweight(V,C,R,P) вычисляет веса для каждого воксела в объеме V, заданный векторами C, R и P. C, R и P содержат столбец, строку и плоские индексы местоположений воксела, которые должны быть допустимыми индексами воксела в V.

пример

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

Примеры

свернуть все

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

Считайте изображение и отобразите его.

I = imread('cameraman.tif');
imshow(I)
title('Original Image')

Задайте индекс строки и столбца пикселей для использования ссылочное полутоновое значение интенсивности.

seedpointR = 159;
seedpointC = 67;

Вычислите полутоновый массив веса различия в интенсивности для изображения и отобразите его. Пример делает масштабирование журнала W для лучшей визуализации.

W = graydiffweight(I, seedpointC, seedpointR,'GrayDifferenceCutoff',25);
figure, imshow(log(W),[])

Сегментируйте изображение с помощью полутонового массива веса различия в интенсивности. Задайте те же векторы точки seed, вы раньше создавали массив веса.

thresh = 0.01;
BW = imsegfmm(W, seedpointC, seedpointR, thresh);
figure, imshow(BW)
title('Segmented Image')

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

свернуть все

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

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

Введите объем, заданный как 3-D полутоновое изображение. MustBeNonsparse.

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

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

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

Ссылочная полутоновая маска интенсивности, заданная как логический массив, тот же размер как I.

Типы данных: логический

Индекс столбца ссылочного пикселя (или воксел), заданный как числовой вектор (с целочисленным знаком).

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

Индекс строки ссылочного пикселя (или воксел), заданный как числовой вектор (с целочисленным знаком).

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

Плоский индекс ссылочного воксела, заданного как числовой вектор (с целочисленным знаком).

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

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

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

Пример: W = graydiffweight(I, seedpointC, seedpointR,'GrayDifferenceCutoff',25);

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

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

Порог для абсолютных полутоновых значений различия в интенсивности, заданных как пара, разделенная запятой, состоящая из 'GrayDifferenceCutoff' и неотрицательный скаляр класса double. Когда вы помещаете порог на значения различия в интенсивности, вы строго подавляете выходные значения веса, больше, чем значение сокращения. graydiffweight присваивает эти пиксели наименьшее значение веса. Когда выходной массив веса, W используется для Быстро идущей основанной на методе сегментации (как введено к imsegfmm), этот параметр, может быть полезным в улучшении точности сегментации вывод. Значением по умолчанию этого параметра является Inf, что означает, что нет никакого трудного сокращения.

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

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

свернуть все

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

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

| |

Введенный в R2014b