Re: [Python-es] cosa rara con la función shape()
2011/5/11 jOkAmE jok...@gmail.com Hola, lista. Buen día. Pues sucede que estoy trabajando haciendo unas convoluciones en imágenes. Además, estoy implementando la función para aplicar las convoluciones de tamaño arbitrario tanto en el filtro como en la imagen. Para esto, dentro de las varias funciones que utilizaré, implementé una que me define el tamaño resultante de la imagen después de ser convolucionada. La función es la siguiente: def tam_convo(filtro,imagen): ii_i, jj_i = shape(imagen) ii_f, jj_f = shape(filtro) print type(imagen) print type(filtro) print shape(imagen), shape(filtro) print ii_i, jj_i print ii_f, jj_f xx=(ii_i-ii_f)+1 yy=(jj_i-jj_f)+1 print xx print yy return xx, yy los print excesivos que se leen son para corroborar el funcionamiento raro, porque no me cuadra la salida de la función. Un ejemplo de la salida de esa función es lo siguiente: type 'numpy.ndarray' type 'numpy.ndarray' (60, 60) (9, 9) 60 60 9 9 52 52 [[ 52.05549424 52.05549424]] - Aquí está lo extraño Creo que independientemente lo que haga la función, el resultado de las sumas y restas entre números enteros debe ser un entero. Además, la salida del último renglón no es siempre la misma, pero si hiciéramos un redondeo a esos números siempre serían 52 (para este caso). [clip] Si, eso es muy raro, ya que las operaciones de suma y multiplicación con enteros siempre deberían dar enteros como resultado. Puedes enviar un programa auto-contenido que reproduzca el problema? Y también las versiones de Python y NumPy. -- Francesc Alted ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] cosa rara con la función shape()
jOkAmE wrote: Hola, lista. Buen día. Pues sucede que estoy trabajando haciendo unas convoluciones en imágenes. Además, estoy implementando la función para aplicar las convoluciones de tamaño arbitrario tanto en el filtro como en la imagen. Para esto, dentro de las varias funciones que utilizaré, implementé una que me define el tamaño resultante de la imagen después de ser convolucionada. La función es la siguiente: def tam_convo(filtro,imagen): ii_i, jj_i = shape(imagen) ii_f, jj_f = shape(filtro) print type(imagen) print type(filtro) print shape(imagen), shape(filtro) print ii_i, jj_i print ii_f, jj_f xx=(ii_i-ii_f)+1 yy=(jj_i-jj_f)+1 print xx print yy return xx, yy los print excesivos que se leen son para corroborar el funcionamiento raro, porque no me cuadra la salida de la función. Un ejemplo de la salida de esa función es lo siguiente: type 'numpy.ndarray' type 'numpy.ndarray' (60, 60) (9, 9) 60 60 9 9 52 52 [[ 52.05549424 52.05549424]] - Aquí está lo extraño Creo que independientemente lo que haga la función, el resultado de las sumas y restas entre números enteros debe ser un entero. Además, la salida del último renglón no es siempre la misma, pero si hiciéramos un redondeo a esos números siempre serían 52 (para este caso). Ojalá alguien sepa qué es lo que está pasando aquí. Saludos a todos. Hola, En el código que incluyes hay 7 prints, pero la salida que presentas tiene 8 líneas. Puedo seguir uno a uno los prints con la salida, y los dos últimos imprimen correctamente 52 y 52 en dos líneas. La línea donde pasa el problema no está en este código, porque solamente hay un return xx, yy. El error se está dando después del return, me parece. O estoy mal? saludos Gerardo ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] cosa rara con la función shape()
los print excesivos que se leen son para corroborar el funcionamiento raro, porque no me cuadra la salida de la función. Un ejemplo de la salida de esa función es lo siguiente: type 'numpy.ndarray' type 'numpy.ndarray' (60, 60) (9, 9) 60 60 9 9 52 52 [[ 52.05549424 52.05549424]] - Aquí está lo extraño A mí me funciona perfectamente: import numpy as np a_filtro = np.zeros((3,3)) b_imagen = np.zeros((10,12)) def tam_convo(filtro,imagen): ii_i, jj_i = np.shape(imagen) ii_f, jj_f = np.shape(filtro) print type(imagen) print type(filtro) print np.shape(imagen), np.shape(filtro) print ii_i, jj_i print ii_f, jj_f xx=(ii_i-ii_f)+1 yy=(jj_i-jj_f)+1 print xx print yy return xx, yy tam_convo(a_filtro, b_imagen) Outputs: type 'numpy.ndarray' type 'numpy.ndarray' (10, 12) (3, 3) 10 12 3 3 8 10 (8, 10) np.__version__ '1.5.1' sys.version '2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)]' sys.platform 'win32' ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] cosa rara con la función shape()
Debo estar haciendo algo mal entonces. Le doy otra revisión a mi código. Gracias por la colaboración. El día 11 de mayo de 2011 16:13, Kiko kikocorre...@gmail.com escribió: los print excesivos que se leen son para corroborar el funcionamiento raro, porque no me cuadra la salida de la función. Un ejemplo de la salida de esa función es lo siguiente: type 'numpy.ndarray' type 'numpy.ndarray' (60, 60) (9, 9) 60 60 9 9 52 52 [[ 52.05549424 52.05549424]] - Aquí está lo extraño A mí me funciona perfectamente: import numpy as np a_filtro = np.zeros((3,3)) b_imagen = np.zeros((10,12)) def tam_convo(filtro,imagen): ii_i, jj_i = np.shape(imagen) ii_f, jj_f = np.shape(filtro) print type(imagen) print type(filtro) print np.shape(imagen), np.shape(filtro) print ii_i, jj_i print ii_f, jj_f xx=(ii_i-ii_f)+1 yy=(jj_i-jj_f)+1 print xx print yy return xx, yy tam_convo(a_filtro, b_imagen) Outputs: type 'numpy.ndarray' type 'numpy.ndarray' (10, 12) (3, 3) 10 12 3 3 8 10 (8, 10) np.__version__ '1.5.1' sys.version '2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)]' sys.platform 'win32' ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- ¿Quiere dios prevenir el mal pero no puede? Entonces no es omnipotente. ¿Es capaz, pero no quiere? Entonces es malévolo. ¿Está capaz y dispuesto? ¿Entonces de dónde sale el mal?. ¿No está ni capaz ni dispuesto? ¿Entonces por qué le llaman dios? Epicureo, Filósofo griego, 341 A.C. -- 270 A.C. http://adivulgar.com http://proyectofedora.org/mexico/ http://jokame.photoblog.com/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/