Пробег: 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
Или использовать [ 'grathresh()'] (http://www.mathworks.co.uk/help/images/ref/graythresh .html), чтобы определить 'уровень'. – Oleg
Поскольку изображение имеет только два уровня, вы можете упростить: 'bwImg = (img == 117);'. btw инициализировать с помощью 'false (size (img))' вместо 'zeros' для получения логической матрицы – Amro
Спасибо за ваши ответы. Могу ли я расширить это до 3,4,5, ... и т. Д. Значений? Мой вопрос здесь: http://stackoverflow.com/questions/16252146/converting-a-grayscale-image-to-black-and-white – Simplicity