Какой фильтр применить на изображении, чтобы удалить все объекты, кроме транспортных средств - PullRequest
0 голосов
/ 08 января 2020

Я использовал технику отсу трэ sh, чтобы отделить фон от транспортных средств. Теперь я хочу вычислить количество транспортных средств, и когда я применяю свой алгоритм, он вычисляет другие объекты вместе с транспортными средствами, поэтому я хочу применить любой фильтр, который будет удалять другие объекты из изображения. Изображение и код для отделения отсу и подсчета объектов показаны ниже. Помоги мне в этом.

Транспортные средства отделены от дороги: vehicles separated from road

Мой код:

i=imread('14.png');
figure,imshow(i);
t2=graythresh(i)
it=im2bw(i,t2)
figure,imshow(it);
c=imfill(it,'holes');
figure,imshow(c);
se=strel('disk',20);
iopenned=imopen(c,se);
figure,imshow(iopenned);
[labeled,numObjects]=bwlabel(iopenned,4);

Ответы [ 2 ]

0 голосов
/ 12 января 2020

результат

это результат, который я получаю из кода

0 голосов
/ 11 января 2020

Код, кажется, в порядке, я только изменил размер диска до 8, а затем вы должны игнорировать небольшие объекты, скажем, менее 1000 пикселей. Попробуйте это:

% set car size threshold
minCarSize = 1000;
% read image from stackoverflow
img = imread('https://i.stack.imgur.com/0JVK9.jpg');
it = img(31:425,83:1035,1) > 200;
% process the image with disk size 8
c = imfill(it,'holes');
se = strel('disk',8);
iopenned = imopen(c,se);
[labeled,numObjects]=bwlabel(iopenned,4);
% check object sizes
objSize = nan(numObjects,1);
loc = nan(numObjects,2);
for iObj = 1:numObjects
    objSize(iObj,1) = sum(sum(labeled == iObj));
    [loc(iObj,1),loc(iObj,2)] = find(labeled == iObj,1); % these are x-y to display car numbers
end
% select big shapes
car = find(objSize > minCarSize);
% create image with car count
carNum = insertText(uint8(iopenned*255),fliplr(loc(car,:)),regexp(num2str(1:length(car)),' *','split'));
figure
imshow(carNum);
title('iopenned + car count')
axis off

car count

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...