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