Pys60

He encontrado este hilo, no es precisamente de consolas, pero puede servir.

El caso es que estoy desarrollando un script para pys60 (versión de python para móviles symbian). Se supone que el script tiene que detectar el movimiento (lo hace sin problemas), pero el principal problema viene a la hora de detectar el movimiento. Por lo que he leido en internet lo que se hace es grabar un video e ir sacando las imágenes en tiempo real y procesándolas, comparando dos imágenes seguidas y viendo la dirección en la que han variado los pixels.

Como os imaginaréis en pys60 eso no se puede hacer, como mucho se pueden tomar fotos en un corto espacio de tiempo.

Si alguien tiene alguna idea para ayudarme a detectar la dirección del movimiento que lo diga.

PD: os explico como detecto el movimiento. El programa va haciendo fotos y comparo si ha habido una variación significativa de pixels en una región de la imagen.
Hola,
no estoy muy seguro pero es posible que el problema no sea de que no puedas adquirir imágenes, sino de que tu algoritmo de detección de movimiento gasta mucho, Igual deberías de comparar simplemente ciertos puntos de la región por ejemplo solo los que sean múltiples de un número mágico.

Si el problema es de la adquisición de imágenes ahí no podrás hacer nada. Además cuenta que estás en una máquina virtual, así que no podrás sacar mucho rendimiento.

Tengo que probar algún día algo de symbian :).
un saludo
No, nos es culpa del algoritmo, he probado a capturar varias imágenes seguidas sin hacerles nada y hay un lapso de tiempo importante. ¿No se puede hacer nada, para detectar la dirección del movimiento con estas imágenes?
mira porque no intentas capturar video en vez de imágenes y procesar las subseguidas?.

Por otro lado si tu api te permite coger imágenes a menor resolución que la nativa del móvil esto hará que puedas conseguir una imágen más rápidamente ya que bueno como sabrás el tiempo de adquisición de imágen depende de varios factores uno sería el tiempo que tarda el objetivo en capturar la imágen y otro el que tarda en copiarse en memoria para que tu puedas recivirla.

Por lo tanto intenta primero coger la imágen a una menor resolución (esto a mi me pasaba cuando hice un juego que se jugaba con la cámara que me chupaba mucho si la cámara era más buena así que tenía que controlar la resolución. Por otro lado si no puedes intenta capturar video directamente y procesar frames de video.
Lo que comentas ya lo he intentado.

- El módulo de la cámara de pys60 sólo te permite sacar imágenes a las resoluciones que soporta la cámara. Es decir, si mi N73 puede sacar fotos a 160x120 y 640x480 con python sólo puedo acceder a las mismas resoluciones (está más que comprobado).

- Siempre he hecho las pruebas usando la mínima resolución ermitida, y con la mínima cantidad de colores por pixel y aún así existe un desfase importante.

- Sé como capturar video, pero no sé como acceder a los frames del video para procesarlo. Me leí el manual de pys60 no vi ninguna función que me permitiera hacerlo.
al fin y al cabo un video es una secuencia de frames cuando consigas acceder a ellos lo tendrás bien :) pero para eso ya hay que saber del api, igual los frames están como miembros privados, si tienes acceso a la librería en python puedes buscar el vector buffer donde los almacene.

un saludo y mucha suerte
5 respuestas