I am doing a project on object-counting from images. For that, I have taken two images- one is the background containing no objects and the other containing some objects(toy-cars) over it.
Background Image:
------------------------------------------------------------
Image with objects over it:
The difference-image between the two images is taken and converted to black-and-white using a threshold value. The problem is that some of the pixels inside the objects match with the background and so these pixels are also getting subtracted completely and as a result, some black pixels are occurring inside the objects as you can see from the b/w image below and so the objects are getting divided into parts.
I need each object to occur as one object so that we get the exact no of objects. Can someone please help me regarding this.
The code I have used is below:
I = imread('Snap5.png');
J = imread('bg1.png');
K = imabsdiff(I,J);
th = graythresh(K);
L = im2bw(K,th);
[LabeledIm,ConnectedObj] = bwlabel(L,4);
coloredLabels = label2rgb (LabeledIm, 'hsv', 'k', 'shuffle');
ConnectedObj
figure,
subplot(221), imshow(K), title('Difference'),
subplot(222), imshow(L), title('Thresholded BW'),
subplot(223), imshow(coloredLabels), title('Color-labeled Objects');

댓글 수: 9

Shivam Garg
Shivam Garg 2015년 5월 30일
Hello I am Also Trying to Calculate the Number Of Vehicle on Road.
I am using OPENCV for that.
I am not able to understant what all u have done. Can u please explain what is the basic aglorithm u have used.
I am trying with background subtraction But it says that u need to have continuous frame to do that.
I will be very thankful to u
Shivam Garg
Image Analyst
Image Analyst 2015년 5월 30일
You should ask in an OpenCV forum instead of a MATLAB/Simulink forum.
Project Traffic
Project Traffic 2017년 3월 25일
can you please upload the exact matlab code for counting the objects even if there is another object within the same object and give a count of one
Image Analyst
Image Analyst 2017년 3월 25일
Call imfill() to combine internal blobs, then call regionprops().
Saqib Ali
Saqib Ali 2020년 9월 18일
use strel (structuring elements) method for helping MATLAB to guess the size of object.
Image Analyst
Image Analyst 2020년 9월 18일
편집: Image Analyst 2020년 9월 18일
"Project Traffic", 3.5 years old so I realize you probably won't answer but re-reading the question, when you say "can you please upload the exact matlab code for counting the objects even if there is another object within the same object and give a count of one" it sounds ambiguous. I'm unsure if you have an object containing another object, like a bullseye target,
do you want that to count as one white object or two? Normally bwlabel() whould give a count of 2.
[labeledImage, numRegions] = bwlabel(binaryImage);
If you want it to count as 1, then you can either fill the outer objects and label
binaryImage = imfill(binaryImage, 'holes');
[labeledImage, numRegions] = bwlabel(binaryImage);
However this would change the measurements returned by regionprops since now the blob's area is different - it's just one giant disc instead of a thin ring. Or you could get rid of "interior" blobs using some morphological tricks so that there is just one thin white ring. Let me know if you need that.
Jeje Ahmad
Jeje Ahmad 2020년 10월 28일
hi
can try your code to counting the number of cars?
@KangKan
Jeje Ahmad
Jeje Ahmad 2020년 10월 28일
@KangKan
Image Analyst
Image Analyst 2020년 10월 28일
Kangkan hasn't been here in 7 years, but you can sure give it try. Just copy, paste, and change image filename, and run.

댓글을 달려면 로그인하십시오.

 채택된 답변

Image Analyst
Image Analyst 2013년 10월 20일

0 개 추천

Replace these two lines:
L = im2bw(K,th);
[LabeledIm,ConnectedObj] = bwlabel(L,4);
with these
binaryImage = im2bw(K,th);
binaryImage = imclose(binaryImage, true(5)); % Close gaps and connect nearby blobs.
binaryImage = bwconvhull(binaryImage); % Make shapes convex and fill holes.
[LabeledIm,ConnectedObj] = bwlabel(binaryImage,4);

추가 답변 (1개)

Fasih  Chishti
Fasih Chishti 2015년 1월 29일

0 개 추천

Hello! I'm doing project on Image counting... How could i count the objects from any picture? Thanks

카테고리

도움말 센터File Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

질문:

2013년 10월 20일

댓글:

2020년 10월 28일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by