Re: [Python-es] cosa rara con la función shape()

2011-05-11 Por tema Francesc Alted
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()

2011-05-11 Por tema gerardo Juarez

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()

2011-05-11 Por tema Kiko
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()

2011-05-11 Por tema jOkAmE
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/