2016-10-15 2 views
0

я получаю мой 'T' этим (итерационного глобального пороговым) способ:MATLAB: Почему значение Threshold нормализуется?

count = 0; 
T = mean2(f); %Average or mean of matrix elements 
done = false; 
while -done 
end 

Теперь я получаю T:

T = 

    122.7068 

Теперь я иду сегмент изображения с помощью:

g = im2bw(f, T/255); 

T делится на 255 (нормировано на ra nge [0, 1])

Зачем нам нужно нормализовать T?

Прошу прощения за этот вопрос.

Как я взглянуть на мою гистограммой (от уровня серого изображения):

enter image description here

это не T=122.7068 все потребности, поэтому мне нужна такая нормализация?

+0

Если я не ошибаюсь, это просто, что цвета в Matlab представлены от 0 до 1, а не от 0 до 255. Таким образом, вся функция «image» хочет значения от 0 до 1. – mpaskov

+0

@mpaskov Это зависит от: для «двойных» входов диапазон значений от 0 до 1. Как вы описали, но для 'uint8' (который часто используется для изображений), Функции Matlab требуют диапазона от 0 до 255. – hbaderts

ответ

0

Много изображений uint16, плавающих вокруг. Поэтому у меня может быть какой-то алгоритм, который сначала пытается наивно порождать, используя режим возможного диапазона данных, поэтому 128 с uint8. Затем я смогу подключить uint16-образ, для которого max - 65535, и алгоритм будет порождать все как передний план для его первого предположения. Глупый пример, но точка одна и та же. Нормализация часто является хорошей идеей.

Также исторические причины. Стив Eddins говорит о порогах в своем Mathworks блоге:

http://blogs.mathworks.com/steve/2016/05/09/image-binarization-im2bw-and-graythresh/

«На данный момент в ранней истории MATLAB, язык действительно был только один тип все в MATLAB был двойной точности матрицы Это сказывалось.. ранний функциональный дизайн двумя способами: во-первых, набор инструментов установил [0,1] в качестве обычного динамического диапазона для изображений с серой шкалой. На этот выбор повлияла математическая ориентация MATLAB, а также тот факт, байт на элемент данных. "

Также забавно:

«Опытные разработчики программного обеспечения будут удивлены комментарием кода выше,« Использовать по умолчанию на данный момент ». Это указывает на то, что разработчик хотел вернуться и сделать что-то еще перед отправкой, но так и не сделал. Во всяком случае, вы можете видеть, что УРОВЕНЬ 0,5 используется, если вы не укажете его сами ».

Смежные вопросы