Object-counting in image processing.
이전 댓글 표시
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
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
2015년 5월 30일
You should ask in an OpenCV forum instead of a MATLAB/Simulink forum.
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
2017년 3월 25일
Call imfill() to combine internal blobs, then call regionprops().
Saqib Ali
2020년 9월 18일
use strel (structuring elements) method for helping MATLAB to guess the size of object.
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
2020년 10월 28일
hi
can try your code to counting the number of cars?
@KangKan
Jeje Ahmad
2020년 10월 28일
@KangKan
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.
채택된 답변
추가 답변 (1개)
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에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!