Procesamiento De Inagenes
closepreview(vid);
im=getsnapshot(vid);
stop(vid);
delete(vid);
imshow(im);
%%obtencion de la imagen en cada color del plano
im=im2double(im);[r c p]=size(im);
%%extraccion de planos individaules de RGB de la imga
imR=squeeze(im(:,:,1));
imG=squeeze(im(:,:,2));
imB=squeeze(im(:,:,3));
%%identificacion deobjetos
imBinaryR=im2bw(imR,graythresh(imR));
imBinaryG=im2bw((imG,graythresh(imG)));
imBinaryB=im2bw(imB,graythresh(imB));imBinary=imcomplement(imBinary&imBinaryG&imBinaryB);
imshow(imBinary);
%%morfologia open
se=strel('disk',7);
imClean=imopen(imBinary(imBinary,se));
%rellenar los huecos y limpiar los bordesimClean=imFill(imClean,'holes');
imClean=imclearborder(imClear);
imshow(imClean);
%segmentar la imgaen en niveles de grises
[labels,numtLabels]=bwlabel(imClean);
disp([Numero de objetosdetectados:',num2str(numLabels)]);
%inicializacion de matrices se compelta de zeros
rlabel=zeros(r,c);
glabel=zeros(r,c);
blabel=zeros(r,c);
%%color de region de cada labelfor i=1:numlabels
rlable(labels==i)=median(imR(labels==i))
glabel(labels==i)=median(imG(labels==i))
blabel(labels==i)=median(imB(labels==i))
end
imlabel =cat(3,rlabel,glabel,blabel);
imshow(imlabel);
impixelinfo(gcf);
%obtencion de segmento por cada color
[x y]=ginput(1);
selcolor=imlable(floor(y),floor(x),:);
%%conversioon de LABsolor space
c=makecform('srgb2lab');
imLAB=applycform(imlabel c);
imSelLAB=applycform(selColor,c);
%%extraer a* and b* values
imA=imLAB(:,:,2);
imB=imLAB(:,:,3);imselLAB=imSelLAB(1,2);
imselB=imselLAB(1,3);
%%compute distance for selected color
distThresh=10;
imMask=zeros(r,c);
imDist=hypto(imA - imSelA, imB-imSelB);
imMask(imDist
Regístrate para leer el documento completo.