2013-04-27 4 views
-2

У меня есть изображение в градациях серого, которое имеет только значения 60 и 117. Как преобразовать изображение только black и white без graylevels?Преобразование изображения в оттенках серого в черный и белый

Я пробовал функцию matlabgray2ind, но не получил ожидаемый выход.

Спасибо.

ответ

4

Пробег: im2bw(img, level) с level = 0.5.

Это функция matlab, которая принимает полутоновое изображение img, применяет порог level (значение между [0,1]) и возвращает черно-белое изображение.

Эта функция является частью панели обработки изображений. Ваш случай достаточно прост, что вы могли бы попробовать что-то вроде:

bwImg = false(size(img)); 
bwImg(img == 117) = true; 

я редактировал выше, чтобы установить значение, равное ложные/истинного к более точно имитировать Matlab-х im2bw() который возвращает матрицу logical значений, а не ints.

второй Edit: Модифицированный блок кода, чтобы отразить улучшения, предложенные @Amro

+0

Или использовать [ 'grathresh()'] (http://www.mathworks.co.uk/help/images/ref/graythresh .html), чтобы определить 'уровень'. – Oleg

+1

Поскольку изображение имеет только два уровня, вы можете упростить: 'bwImg = (img == 117);'. btw инициализировать с помощью 'false (size (img))' вместо 'zeros' для получения логической матрицы – Amro

+0

Спасибо за ваши ответы. Могу ли я расширить это до 3,4,5, ... и т. Д. Значений? Мой вопрос здесь: http://stackoverflow.com/questions/16252146/converting-a-grayscale-image-to-black-and-white – Simplicity

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