Como medir distancia entre 2 puntos en una imagen?
Publicado por joaquin (2 intervenciones) el 21/11/2013 17:56:42
Chicos, mi duda es la del título, necesito medir la distancia en CENTÍMETROS de la barra que esta a la izquierda de esta imagen(don 3 una amarilla y 2 verdes, la 3 tienen el mismo tamaño asi que la medicion de cualquier me sirve)
http://imageshack.com/i/mvbblop
utilice solo la parte necesaria, trannsforme a nivel de gris, blanco y negro entre otras cosas tambien aplique la trnasformada de hough, si esta utima me llegase a servir, como OBTENGO y luego UTILIZO los datos? por favor ayudenme desde ya muchas gracias
X=imread('Cosas.png');
rect_I = [69 130 137 338];
RGB= imcrop(X,rect_I);
grises=rgb2gray(RGB);
%% Obtener el fondo de la imagen
background=imclose(grises,strel('disk',0));
figure, imshow(background)
%% Binarizar imagen
lavel=graythresh(background);
intensidad=lavel*255
BW=im2bw(background,lavel);
figure, imshow(BW)
%%aplicar un imopen
se=strel('disk',3);
open1=imopen(BW,se);
figure, imshow(open1)
%% Eliminar todos las areas menores de 40 pixels
J = bwareaopen(~open1,300);
figure,imshow(J)
%% preprocesamiento con transformada de HOUGH
[H,T,R]=hough(J);
peaks=houghpeaks(H,5);
lines=houghlines(J,T,R,peaks);
hold on
max_len=0;
max_len=0;
for k=1:length(lines)
xy=[lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
%% dibuja el principo y el final de cada segmento
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
%% Dibujar el segmento
len=norm(lines(k).point1 - lines(k).point2);
if( len > max_len)
max_len = len;
xy_long = xy;
end
end
imtool(lines);
http://imageshack.com/i/mvbblop
utilice solo la parte necesaria, trannsforme a nivel de gris, blanco y negro entre otras cosas tambien aplique la trnasformada de hough, si esta utima me llegase a servir, como OBTENGO y luego UTILIZO los datos? por favor ayudenme desde ya muchas gracias
X=imread('Cosas.png');
rect_I = [69 130 137 338];
RGB= imcrop(X,rect_I);
grises=rgb2gray(RGB);
%% Obtener el fondo de la imagen
background=imclose(grises,strel('disk',0));
figure, imshow(background)
%% Binarizar imagen
lavel=graythresh(background);
intensidad=lavel*255
BW=im2bw(background,lavel);
figure, imshow(BW)
%%aplicar un imopen
se=strel('disk',3);
open1=imopen(BW,se);
figure, imshow(open1)
%% Eliminar todos las areas menores de 40 pixels
J = bwareaopen(~open1,300);
figure,imshow(J)
%% preprocesamiento con transformada de HOUGH
[H,T,R]=hough(J);
peaks=houghpeaks(H,5);
lines=houghlines(J,T,R,peaks);
hold on
max_len=0;
max_len=0;
for k=1:length(lines)
xy=[lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
%% dibuja el principo y el final de cada segmento
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
%% Dibujar el segmento
len=norm(lines(k).point1 - lines(k).point2);
if( len > max_len)
max_len = len;
xy_long = xy;
end
end
imtool(lines);
- Cosas.rar(442,6 KB)
Valora esta pregunta
0