1

Я пытаюсь обнаружить объекты на следующем изображении и рассчитать центроиды и ориентацию каждого объекта на изображении.Подход к обнаружению центроидов и ориентация объектов на изображении

До сих пор мой подход заключался в том, чтобы удалить фон из изображения и изолировать объекты. Однако сегментация неточна.

Какие еще подходы можно взять? Будет ли обнаружение SURF с использованием эталонных изображений более точным подходом?

Моя попытка:

I = imread('image.jpg'); 
figure, imshow(I) 

background = imopen(I,strel('disk',15)); 

I2 = I - background; 
figure, imshow(I2); 

I3 = imadjust(rgb2gray(I2)); 
figure, imshow(I3); 

level = graythresh(I3); 
bw = im2bw(I3,level); 
bw = bwareaopen(bw, 50); 
figure, imshow(bw) 

enter image description here enter image description here

+0

Это выглядит довольно хорошо для меня. Я думаю, было бы хорошо, если бы вы добавили другое, отдельное изображение, где вы набросаете, например. в красном точно, какой результат вы ожидаете. Другие могут затем сравнить свои результаты с теми, которые вы ожидаете ... – kkuilla

+0

Хорошо, проблема в том, что я не могу получить четкую сегментацию объектов для извлечения центроида и ориентации для каждого. Извините, если это неясно в вопросе – dfj328

+0

Да, но сегментация мне понятна. Это выглядит достаточно хорошо для меня. Вот почему я рекомендую вам добавить другое изображение, где вы, например. нарисуйте область сегментации/схему, которую вы ищете вручную. Для аутсайдера довольно сложно понять, что для вас значит «достаточно хорошо». – kkuilla

ответ

1

Хороший старт.

Я хотел бы сделать следующее:

1- предварительного процесса вашего изображение применять некоторые фильтры и некоторые извилины для удаления шума; например, расширение и эрозия.

2- после вычисления порогов попробуйте заполнить маски, чтобы вы закрыли «объекты». Я думаю, что imfill - http://www.mathworks.com/help/images/ref/imfill.html - поможет вам в этом.

Также смотрите на - http://www.mathworks.com/help/images/image-enhancement-and-analysis.html -