Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Imdilate de matlab en C

Estas en el tema de Imdilate de matlab en C en el foro de C/C++ en Foros del Web. Buenas tardes amig@s, tengo unas dudas puntuales, resulta que tengo que realizar un programa que lea un arreglo bidimensional (matriz) con sólo elementos 1 y ...
  #1 (permalink)  
Antiguo 30/06/2012, 14:05
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Imdilate de matlab en C

Buenas tardes amig@s, tengo unas dudas puntuales, resulta que tengo que realizar un programa que lea un arreglo bidimensional (matriz) con sólo elementos 1 y 0, tal como el tratamiento de una imagen binaria. Y a esta imagen, se le trate como matlab dilatandola con elemento estructurante. Ahí va mi duda.
Tengo lo siguiente:

Código:
#include <stdio.h>
int k,l;
short int matriz[18][42] =
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};


int a,b;        // Variables que almacenan el la dimensión de la matriz por teclado
int x,y;
int i,j;        // Variables utilizadas para diversas estructuras
int d[18][42];  // Matriz auxiliar usada en Imdilate
int reiniciar;  // Da la opción de reiniciar el programa para usarlo de nuevo.
int aux[20][50];
/*void copiar_x_en_d(){

for(i=0; i<18; i++){
for(j=0; j<42; j++){
d[i][j]=matriz[i][j];
}}}*/
void main(){

   for(i=0;i<18;i++)
        for (j=0;j<42;j++)
           for(k=0;k<3;k++)
                for(l=0;l<3;j++){
                    if(matriz[i][j]==1){
                        d[i][j+1]=1;
                        }
                    }
//copiar_x_en_d();
/*
for(k=1;k<=20;k++)
    for(l=1;l<=20;l++)
        for(i=k-1;i<=k+1;i++)
            for(j=l-1;j<=l+1;j++)
                if(matriz[i][j]==1)
                    aux[k-1][l-1]=1;
for(i=0;i<20;i++)
    for(j=0;j<20;j++)
        d[i][j]=aux[i][j];
*/

printf("\n\n");
system("cls");
printf("La Matriz (Imagen) Dilatada de %d por %d es: \n",18,42);
printf("\n\n");

for (i=0; i<18; i++){
for (j=0; j<42; j++)

printf("%d",d[i][j]);
printf("\n");
}
printf("\n");
printf("\n\n\n");

}
y nada :(
Quien tiene alguna sugerencia?
  #2 (permalink)  
Antiguo 01/07/2012, 23:05
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Imdilate de matlab en C

Hola! tal vez si explicaras a que te referis con
Cita:
se le trate como matlab dilatandola
seria mas facil ayudarte.... exactamente que es lo que hace "dilatandola" ??

Saludos

Etiquetas: int, matlab, programa, struct, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.