Ayuda, medir distancia/diámetro

Iniciado por carolabeatle, 2 Marzo 2016, 22:58 PM

0 Miembros y 1 Visitante están viendo este tema.

carolabeatle

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 */