Problem regarding image processing in binary image

1 回表示 (過去 30 日間)
Adrian Lim
Adrian Lim 2018 年 7 月 11 日
コメント済み: KALYAN ACHARJYA 2018 年 7 月 30 日
I'm currently working on image processing on an image on streets. Here are the codes I'm currently using
C=im2double(img);
B=im2double(bgd);
maxchan=max(B,[],3);
threshmax = multithresh(maxchan,4);Qmax=imquantize(maxchan,threshmax);
bw=bwareafilt( Qmax==2,1);
bw=imclose(bw,strel('disk',10));
D=rgb2gray(bw.*(C-B));
thresh=multithresh(D,2);
result=bwareafilt( imquantize(D,thresh)>1, [10,inf]);
result2=imfill(result,'holes')
imshow(result2)
Then, I'll have a result as following
Are there any solutions to get a more complete car-shaped white blob and remove the lines on the road ?? This is because I'm attempting to count the number of the cars. There is another problem where if i take another picture with different lighting or different angle, the result of the image could be worse where i could not see any blobs. The images of the current image are attached as .m files. Thank you in advance. The other pictures where I could not extract anything are also attached.

採用された回答

Image Analyst
Image Analyst 2018 年 7 月 11 日
I'd use imclose() first to connect some separate blobs, like the car split into two or 3 parts due to a luggage rack on the roof. Then use bwareaopen() or bwareafilt() to get rid of blobs smaller than a certain size.
  4 件のコメント
Image Analyst
Image Analyst 2018 年 7 月 11 日
編集済み: Image Analyst 2018 年 7 月 11 日
Your segmentation algorithm is not robust enough. What have you tried? Have you tried the tracking stuff int he Computer Vision System Toolbox? Have you tried using Gaussian Mixture Models? Or even just taking a recent mode image to get the background? Sorry but I can't help you develop a robust turnkey car counting system - that could take months.
and here:
Adrian Lim
Adrian Lim 2018 年 7 月 11 日
I've tried searching for informations and I've looked through those sites. The problem that I am facing is im using images but not videos. I'm using a webcam to snapshot from the model by putting cars on it and trying subtraction method to remove the background and count the cars.

サインインしてコメントする。

その他の回答 (1 件)

KALYAN ACHARJYA
KALYAN ACHARJYA 2018 年 7 月 11 日
%% To remove roads
LB=2000;
seg=bwareaopen(result2,LB);
figure, imshow(seg)
  2 件のコメント
Adrian Lim
Adrian Lim 2018 年 7 月 11 日
Thanks for the suggestion!
KALYAN ACHARJYA
KALYAN ACHARJYA 2018 年 7 月 30 日
Welcome

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by