elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda, medir distancia/diámetro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, medir distancia/diámetro  (Leído 1,775 veces)
carolabeatle

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda, medir distancia/diámetro
« 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

Código:
//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 */


« Última modificación: 3 Marzo 2016, 15:21 pm por carolabeatle » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines