Matlab - Como saltar a una parte anterior del programa para cambiar un dato en una sentencia if

 
Vista:

Como saltar a una parte anterior del programa para cambiar un dato en una sentencia if

Publicado por Gianna (5 intervenciones) el 22/06/2012 22:57:54
Hola,
tengo una duda, estoy haciendo un programa que obtiene el codigo de cadena de un objeto presente en una imagen.
Como el objeto esta siempre en el mismo sitio, aplico una mascara a la imagen de forma que la zona donde esta mi objeto es multiplicada por 1 y el resto por 0.
A partir de aqui umbralizo para quedarme solo con el objeto y luego obtengo el codigo de cadena.
Como el programa tiene que funcionar para cualquier imagen de entrada, el nivel de umbralizacion cambia dependiendo del color del fondo.
Mi problema es que algunas veces el fondo es muy parecido al color del objeto, y me quedan pixeles blancos sueltos, y como el el codigo cadena se calcula a partir del primer pixel no-negro de la imagen (recorriendo el perimetro del objeto), lo que obtengo no es el codigo cadena de mi objeto sino de unos pocos pixeles (una linea de 4 pixeles por ejemplo).
Lo que quisiera es, una vez obtenido el codigo cadena, si éste no es el de mi objeto, volver al punto del programa donde se hace la umbralizacion, cambiar el nivel umbral y repetir el calculo del codigo cadena.

Agradecería muchísimo si alguien pudiera ayudarme.
Gianna.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como saltar a una parte anterior del programa para cambiar un dato en una sentencia if

Publicado por Gianna (5 intervenciones) el 23/06/2012 16:26:31
Hola Jose, gracias por tu respuesta, pero aun me queda una duda, como indico al programa cual es exactamente la parte del código a la que quiero que vuelva??
El esquema de mi programa es:

1-leer imagen
2-conversion a grises y multiplicar por mascara
3-umbralizar (utilizando for e if)
4-calculo codigo cadena
5-comprobar codigo cadena
6-representacion

si al acabar el punto 5 el codigo obtenido es erróneo, como indico al programa que vuelva al punto 3?

Gracias
Saludos,
Gianna.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como saltar a una parte anterior del programa para cambiar un dato en una sentencia if

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 23/06/2012 16:32:58
Mas o menos entiendo tu codigo.
Si el for va desde el paso 3 hasta el paso 6 entonces, podrias usar la funcion continue para pase a la sigueiente iteracion.

Y si haces con funciones separadas cada parte, entonces podrias usar las funcion case de matlab, para eligir.

Ademas podras usar un while infinito y un boleado para que mande al lugar que desees.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar