2010-07-07 2 views
0

Когда я применил erosion к моему изображению, чтобы найти маленькие шары или объекты в форме диска, независимо от того, насколько я изменяю размер элемента структурирования, он, похоже, не работает. Вместо этого все изображение выглядит как-то смазанным элементами структурирования. Я все еще вижу, где находятся объекты, но это не помогает мне найти их. Есть ли способ усовершенствовать эту технику?Erosion in MATLAB

ответ

0

Вы всегда должны использовать открытие/закрытие. Ваша эрозия «повредит» объекты, которые вы хотите найти, поэтому вы должны сделать dilation после. Это было открытие/закрытие. Вот небольшая MATLAB программа для обнаружения «сгустки» на изображении:

Ib = binary_image // Whatever image 
[L, n] = bwlabel(Ib); 
RGB = label2rgb(L, 'spring', 'c', 'shuffle'); 
figure, imshow(RGB); 
imwrite(RGB, 'segmented.jpg'); 
stats = regionprops(L) 
0

Если это оттенки серого вы можете захотеть взглянуть на предварительную обработку с помощью фильтров.

1

InsertNickHere коснулся того, что, по моему мнению, ваше замешательство, без явного объяснения этого. Похоже, вы ожидаете результатов, которые подрывают/расширяют/открывают/закрывают с помощью двоичного изображения. Выполнение этих операций с типичным полутоновым изображением даст поведение, которое вы получаете.

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