2014-12-15 4 views
1

Я пишу функцию, которая подсчитывает черно-белые пиксели.
Есть ли какая-либо функция в Matlab для подсчета белых и черных пикселей?
Я знаю, что могу использовать метод размера и 2 для циклов и подсчета.
Что-то вроде этого:Подсчет белых и черных пикселей

[row, column]= size(im); 
cb = 0; 
cw = 0; 
for i=1:row 
    for j=1:column 
     if(im(i,j) == 0) 
      cb = cb + 1; 
     end 
     if(im(i,j) == 255) 
      cw = cw + 1; 
     end 
    end 
end 

Но я ищу какой-то более простой метод. Вы знаете какой-либо метод?

ответ

5

Если im это бинарное изображение, то:

cb = sum(im(:)) 
cw = numel(im) - cb 

Если im это оттенки серого изображения, то:

cb = sum(im(:) == 255) 
cw = sum(im(:) == 0) 
+0

Есть ли способ, что я могу CHEC, если им является бинарным или полутоновых изображений? – Cieja

+0

см. 'Islogical' –

+0

Изображения в оттенках серого иногда представляются в виде массива удвоений (для выполнения некоторых математических операций). В этом случае интенсивность составляет от 0,0 до 1,0 - где 0 - черный, а 1 - 100% белый. – nimrodm

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