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

Francesc Alted faltet en pytables.org
Mie Mayo 11 21:32:49 CEST 2011


2011/5/11 jOkAmE <jokame en 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110511/aa18b56b/attachment.html>


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