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

gerardo Juarez gerardojuarez en buyteknet.info
Mie Mayo 11 21:55:08 CEST 2011


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



Más información sobre la lista de distribución Python-es