Detecção de objeto usando limiar
Estou trabalhando em um programa no matlab para detectar um objeto em uma sequência de imagens. O objeto que estou tentando detectar uma bola vermelha.
Primeiro, tentei usar o limiar para segmentar a bola da imagem, mas não consegui. Eu não conseguia me livrar da sombra debaixo da bola. Alguma idéia de como se livrar da pequena parte debaixo da bola?
Minha segunda pergunta é: quero ter certeza de que o objeto que estou procurando é uma bola vermelha. meu código detectará qualquer objeto vermelho, quero ter certeza de que é um círculo.
Meu código:
I1 = imread('images/B1.jpg'); % read image
ID1 = im2double(I1); % convert to double
IDG1 = rgb2gray(ID1); % conver to gray scale
t = 112; % set a thresholding value
IT = im2bw(IDG1, t/255); % apply the threshold
I2 = ~IT; % get a nigative image
I3 = bwareaopen(I2,40); % get rid of small unwanted pixels
I4 = imclearborder(I3); % clear pixels of the borders
I5 = bwareaopen(I4,60); % get rid of small unwanted pixels
I6 = imfill(I5,'holes'); % fill the gap on the ball top part
I7 = imclearborder(I6); % get rid of small unwanted pixels