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.
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í.

