2013-07-21 4 views
4

Я хочу разработать приложение, которое может подсчитывать количество объектов в изображении. Не важно знать форму объектов. Мне просто нужна информация о том, сколько объектов в изображении.Как подсчитать количество обнаруженных объектов в изображении?

И я хочу иметь возможность реализовать его со многими изображениями. Это возможно? Как это сделать?

Вот мой код:

a=citra1; 
    a_citra_keabuan = rgb2gray(a); 
    threshold = graythresh(a_citra_keabuan); 
    a_bww = im2bw(a_citra_keabuan,threshold); 
    a_bw = bwareaopen(a_bww,30); 
    se = strel('disk',2); 
    a_bw = imclose(a_bw,se); 
    a_bw=~a_bww; 
    [labeled,numObjects]=bwlabel(a_bw); 

numObjects показывает количество обнаруженных объектов в изображениях.

Вот образец изображений

Images1

Images2

+0

Гораздо лучше в этот раз! – voxeloctree

+0

Помогло бы добавить обнаружение края, скажем, до применения порога, чтобы более четко разграничить регионы? Чтобы работать со многими изображениями, почему бы не попробовать цикл 'for'? –

+0

Что бы вы хотели, чтобы numObjects были для каждого образца изображения? Если вы говорите что-нибудь> 1, то вы просите что-то довольно сложное. – Frederick

ответ

0

Для начала вы можете заливать изображения в различных цветах, а затем обнаружить, сколько цветов осталось. Так что в основном возьмите точку, заполните ее соседи тем же цветом, если какое-то условие выполнено. Это должно оставить изображение с большими полями (перед объектами, если условия правильные). Тогда их можно пересчитать.

Вот подсказка о том, как сделать это: http://blogs.mathworks.com/steve/2008/02/25/neighbor-indexing-2/

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