Метод detectMSERFeatures дает несколько сообщений, которые перекрываются. Есть ли способ удалить перекрывающиеся области? СпасибоУдалить перекрывающиеся MSERs-matlab
ответ
Существует реализация, которая позволяет вам получить построенную область под эллипсом в FileExchange.
Я посмотрел в него на короткое время, и вы, возможно, придется настроить его немного, или использовать его в слегка напуганной образом:
I = imread('cameraman.tif');
regions = detectMSERFeatures(I);
imshow(I)
hold on;
plot(regions);
[~,idx] = sort(sum(regions.Axes,2),'descend');
sortedAxes = regions.Axes(idx,:)/2; %division for later use in ellipseMatrix
sortedLocations = regions.Location(idx,:);
sortedOrientations = rad2deg(regions.Orientation(idx,:)); %degree for later use in ellipseMatrix
с регионами теперь сортируется по сумме оси, которые более или менее пропорциональны размеру, который они занимают, вы можете перебирать их и использовать код из FileExchange для получения их соответствующих двоичных карт. Вам придется изменить код, чтобы он не возвращал изображение с ним, но это должно быть довольно простым. Одним из примеров того, как назвать:
i=1;
x0 = sortedLocations(i,1);
y0 = sortedLocations(i,2);
a = sortedAxes(i,1);
b = sortedAxes(i,2);
theta = sortedOrientations(i);
I2 = ellipseMatrix(x0,y0,a,b,theta,I',128,128,2)';
figure;
subplot(1,2,1);
imshow(I2);
subplot(1,2,2);
imshow(I2);
hold on;
plot(regions);
Если вы сделаете это для остальных эллипсов меньшего размера (если вы отрегулировали метод не включать содержание изображения в возвращаемых значениях), и сравнить размеры пересечений довольно легко размер меньшего Ellipse:
intersection = EllipseMap1 & EllipseMap2;
sizeOfIntersection = sum(intersetion(:));
sizeOfSmallerEllipse = sum(EllipseMap2(:));
это не хороший подход, но он должен сделать трюк.
Фактические регионы указаны как список пикселей. Я полагаю, вы имеете в виду, что перекрытие происходит между эллипсами, описанными свойствами Location и Axes объекта MSERRegions? –
да. Я хочу удалить все эллипсы, содержащиеся в большом эллипсе. –
Содержится или перекрывается? Что делать, если небольшие участки двух областей перекрываются? –