Seguimiento de objetos (2/3) – Detección de objetos en una imagen RGB

Una de las formas de detectar objetos en una imagen en RGB es mediante sus características de color, en esta lección aprenderás como hacer esto con Matlab, el cual te facilita bastante el procedimiento, a partir de la imagen del lado izquierdo obtendremos el resultado de la imagen del lado derecho.

 

Todas Encendidas 01 Binaria1

Código de esta lección:

function[centroides] = deteccion_de_objetos(im_entrada)

% im_entrada = imread('motor.tif');

imshow(im_entrada)

imR = double(im_entrada(:,:,1));
imG = double(im_entrada(:,:,2));
imB = double(im_entrada(:,:,3));

[N,M,Z]=size(im_entrada);
Y = ones(N,M);

Tr1 = 200.53;
Tr2 = 237.53;
Tg1 = 195.71;
Tg2 = 251.69;
Tb1 = 71.09;
Tb2 = 105.69;

for i=1:N;
 for j=1:M;
 if((imR(i,j) > Tr1 && imR(i,j) < Tr2) && (imG(i,j)>Tg1 && imG(i,j)<Tg2) && (imB(i,j)>Tb1 && imB(i,j)<Tb2))
 Y(i,j)=1;
 else
 Y(i,j)=0;
 end
 end
end
imshow(Y)

se = strel('disk',10);
imagen_cerrada = imclose(Y,se);

figure
imshow(imagen_cerrada)

bw = bwareaopen(imagen_cerrada,30);

figure
imshow(bw)

s = regionprops(bw,'centroid');
centroides = cat(1,s.Centroid);

end

Aprende a programar en Matlab con el curso completo Matlab desde Cero. Da click aquí para más detalles.

Puedes descargar el código aquí.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.