Título: Ayuda, medir distancia/diámetro
Publicado por: carolabeatle en 2 Marzo 2016, 22:58 pm
hola! soy nueva en programación y tengo que hacer un trabajo en c con imágenes, ya logre una parte del mismo pero me falta medir distancias. logre una imagen de una curva cerrada en blanco sobre fondo negro (como una circunferencia un poco deformada) me faltaría medir el diámetro en x y en y. hice un draft del código pero no se como hacer la parte que me identifique desde que punto medir (x1,y1) hasta (x1,y2) para el diámetro en dirección y. tamb, medir desde (x3,y3) hasta (x4,y3) para el diámetro en dirección x. va mi código. muchas gracias a cualquiera que me pueda ayudar!! saludos //medicion diametro #include <stdio.h> #include <stlib.h> #include <math.h> double distancia(double x1, double y1, double x2, double y2); main (int argc, char *argv[]) { FILE *img_in; char c; int i,j,hx,hy,max; int img[512][512]; double dpix1,dist1,x1,y1,y2; double dpix2,dist2,x3,y3,x4; img_in=fopen(argv[1],"r"); for (i=1;i<=2;i++){ fscanf(img_in,"%c",&c); while (c!='\n'){ fscanf(img_in,"%c",&c); } } fscanf(img_in,"%d",&hx); fscanf(img_in,"%d",&hy); fscanf(img_in,"%d",&max); //copiado de imagen a matriz for(j=0;j<hy;j++) for(i=0;i<hx;i++) fscanf(img_in,"%d ",&img[i][j]); fclose(img_in); //analizar matriz y obtener los ptos
//medir dist en las dos direcciones dpix1=distancia(x1,y1,x1,y2); dist1= /*pasar pixels a microm*/ dpix2=distancia(x3,y3,x4,y3); dist2= printf("\n El diametro en x es: %.4f",dist2); printf("\n El diametro en y es: %.4f",dist1); }/*fin programa*/
//calcular distancia entre los ptos obtenidos double distancia(double x1, double y1, double x2, double y2) { double d; d=sqrt(((xb-xa)*(xb-xa))+((yb-ya)*(yb-ya))); return d; }/*fin distancia */
|