# How can I properly detect a ball moving in a film capture?

I have problem in detecting a ball moving in a flume (image below). since converting the frames into grayscale format didn't work I converted it into rgb and make it more saturated. problems are: 1- in the first frames which ball is in the right position, light disturbed the ball detection (image subtraction didn't work well) So I did it without subtraction.

this is my problem in detecting the ball in the first frames. in the rest frames the problem is its shadow and the white dots on the ball. I can't see the exact ball to find it's exact position in each frame (its shadow lead to some uncertainties)

anyway, I'm using matlab. I shared the code below (subtraction is not working well because of light, note that ball moves since water make it move in the flume).

Any Ideas about how can I detect the ball more precisely? handle the light in the first frames? handle the ball's shadow?

% the code starts

I=imread('frame3860.png');
I=lensdistort(I,-0.3);
I2=imcrop(I, [263.5 85.5 1468 940]);
I2=imrotate(I2,-1,'bilinear','crop');
I2=rgb2hsv(I2);
I2(:,:,2)=I2(:,:,2)*1.9;
I3=I2(:,:,1)>0.57 & I2(:,:,1)<0.75;
I4=bwareaopen(I3,200);
I4=medfilt2(I4);
I4=imfill(I4,'holes');
str=strel('disk',1);
I5=imdilate(I4,str);
I5=I5-I4;
e = edge(I5, 'canny');
h = circle_hough(e, radii, 'same', 'normalise');
[~,maxIndex] = max(h(:)); %find the global maximum of your accumulator array
[i,j,k] = ind2sub(size(h), maxIndex);
center.x = j;
center.y = i;
N = 200;
theta=linspace(0,2*pi,N);
[X,Y] = pol2cart(theta,rho);
cent(1,:)=[j,i]; % centroid of the ball in each frame


% code finished

If you have any idea for a better ball detection in my situation I will be grateful.

P.S. I removed the images since I didn't have the reputation needed to post more than 2 images

• Are the backgrounds always composed of such textures with repetitive structures? – Tolga Birdal Jan 18 '17 at 11:09
• the background is without the exposed ball. but when water moves, light will disturb the exact subtraction. – H. Farhadi Jan 18 '17 at 11:23
• can you post the video? – Tolga Birdal Jan 14 '18 at 12:33