Двоичное изображение в Matlab - PullRequest
1 голос
/ 22 мая 2010

Как узнать, является ли изображение, читаемое с imread, двоичным в MATLAB

Я сделал это:

Img = imread(IMGsrc);

T = Img== 1 | Img == 0;

If min(min(T)) == ??????

    imshow(T);

end

????? = ??????

Ответы [ 2 ]

5 голосов
/ 22 мая 2010

Существует два способа проверки двоичных изображений.

Самый простой способ - проверить, является ли изображение логическим массивом (логический массив возвращается функциями из набора инструментов обработки изображений, которые возвращают двоичное изображение)

isBinaryImage = islogical(img);

Кроме того, вы можете проверить, все ли пиксели равны 1 или 0

isBinaryImage = all( img(:)==0 | img(:)==1);
0 голосов
/ 22 мая 2010

Предполагая, что под «двоичным» вы подразумеваете «каждый пиксель равен 1 или 0», пара вещей, заданных вашим изображением I:

  • size(I) должен возвращать только строки и столбцы (не каналы), иначе он не является двоичным
  • Вы можете проверить каждый пиксель либо 1, либо 0 с T = I == 1 | I == 0;. Если min(min(T)) возвращает что-либо, кроме 1, то хотя бы один пиксель не прошел этот тест, то есть есть значение, которое не является ни 0, ни 1. (В этом отношении вы можете использовать аналогичный тест для проверки любого числа перечисляемых значений, а не только 0 и 1.)

Если вы сможете уточнить, что вы подразумеваете под «двоичным кодом», это будет иметь большое значение для лучшего ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...