graydiffweight

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

Описание

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

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

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

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

W = graydiffweight(V,C,R,P) вычисляет веса для каждого вокселя в объеме V, заданный векторами CR, и PCR, и 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')

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

свернуть все

Полутоновое изображение в виде 2D числовой матрицы.

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

Полутоновый объем в виде 3-D числового массива.

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

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

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

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

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

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

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

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

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

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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 или объем VW имеет класс double, если входное изображение или объем не имеют класса single, в этом случае W имеет класс single.

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

| |

Введенный в R2014b