π
<-
Chat plein-écran
[^]

Banque d'images Python TI-83 Premium CE 5.5 pour SNT

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Banque d'images Python TI-83 Premium CE 5.5 pour SNT

Unread postby critor » 12 May 2020, 20:56

Dans le cadre du concours de démo graphiques
Python
de
Planète Casio
,
Kikoodx
a développé un script d'affichage d'image pour
Casio Graph 90+E
.

Nous avons vu à cette occasion qu'il était hélas impossible de le faire fonctionner tel quel sur
TI-83 Premium CE Edition Python
.

L'image fait 384×192 pixels et
Kikoodx
l'inclut astucieusement dans le code dans une version indexée, faisant appel à une palette de 256 couleurs optimisée pour cette image.

Première contrainte, les scripts qui doivent être chargés occupent 196 Kio. Or si ta
TI-83 Premium CE Edition Python
dispose bien d'un espace de stockage pris sur la mémoire
Flash
de
3 Mio
(dit mémoire d'archive)
de capacité, l'application tout script y étant placé sera ignoré par l'application
Python
. Les scripts que tu souhaites pouvoir utiliser doivent obligatoirement être placés dans l'espace de stockage bien plus petit pris sur la mémoire
RAM
, avec dans les 150K disponibles à vide, ce n'est pas assez. :#non#:

Mais l'image étant ici plus large que l'écran avec 384 pixels, on pourrait imaginer que ça rentre après l'avoir tronquée d'un petit quart de sa taille, du genre dans les 300×192 pixels ? Et ben non, même si tu arrives à réduire la taille des scripts à 150K tu n'es pas sorti(e) de l'auberge. Car nous venons de voir que le coprocesseur
Python
de ta machine ne peut importer simultanément qu'un maximum de
50K
scripts. :(

C'est donc de trois quarts qu'il faudrait réduire notre image, elle ne serait plus du tout plein écran. Mais attend non même pas, puisque nous avions vu précédemment que le
heap (tas)
accueillant les valeurs des objets
Python
à l'exécution ne faisait plus que moins de
17.5K
.
17.5K
qui devraient donc accueillir à l'exécution non seulement l'objet image, mais également toutes les fonctions d'affichage liées. :'(

Non décidément, la méthode d'inclure les données d'une image à afficher dans un script
Python
n'est pas envisageable sur
TI-83 Premium CE Edition Python
. A moins qu'il ne s'agisse que de toutes petites images du genre icônes, et très peu nombreuses. :#non#:

Mais alors comment faire avec une classe équipée en
TI-83 Premium CE Edition Python
pour l'enseignement de
SNT
dès la
Seconde
, et notamment toute sa partie sur la photograhique numérique et le traitement d'image en
Python
? :#roll#:

Mais c'est que
Texas Instruments
a pensé à tout, et semble concevoir sa très prochaine mise à jour
5.5
sur-mesure pour le lycée français. ;)

Dans notre exploration récente de la bibliothèque secrète
ti_graphics
, nous découvrions 3 fonctions dédiées aux images :
  • pushImage(x, y, w, h)
  • popImage()
  • drawImage()
pushImage(x, y, w, h) définit une image de dimensions
w×h
pixels qui sera ensuite affichée par popImage() avec comme coin supérieur gauche le pixel de coordonnées
(x,y)
.

Nous n'en avons toutefois pas saisi tout le fonctionnement, puisque n'arrivant à afficher que du bruit mémoire.

Voici maintenant enfin les spécifications de la mystérieuse 3ème fonction d'image drawImage('imgname', x, y).

L'appel drawImage('imgname', x, y) va chercher dans les variables d'application de la calculatrice, c'est-à-dire en externe hors de l'environnement
Python
, une image correspondant au nom fourni, et l'affiche avec le pixel de coordonnées
(x,y)
comme coin supérieur gauche.

Exemple ci-contre de ce que l'on obtient avec l'appel ci-dessous après avoir chargé le fichier
GIRL_150.8xv
:
ti_plotlib.gr.drawImage('GIRL_150', 100, 50)

Cet affichage est ainsi effectué en dehors de l'environnement
Python
, il n'y a aucune création d'objet, aucune consommation de ressource ! :bj:

Il n'en reste pas moins possible de poursuivre le traitement d'image en
Python
, avec des transformations répondant au programme de
SNT
de
Seconde
. ;)

Une simple boucle de
getPixel()
/
setPixel()
te permettra par exemple ensuite de réaliser nombre de choses pertinentes en
SNT
, sans création de gros objets
Python
et donc sans problème d'épuisement du tas
Python
: :bj:
  • symétrie axiale
  • symétrie centrale
  • inversion de couleurs
  • extraction de composantes de couleurs
  • comparaison de divers algorithmes de conversion en niveaux de gris
  • ...


Petit exemple justement sur le passage en niveaux de gris :

Quant aux images justement, il est prévu de nous mettre à disposition une banque d'images téléchargeables déjà préconverties au bon format compatible avec le
Python
de ta calculatrice.

Nous ignorons à ce jour si il sera possible de convertir ses propres images, ou si les fichiers au format en question seront protégés par une possible signature numérique.

Décidément
Texas Instruments
a le soucis méticuleux du détail, la moindre ligne des programmes scolaires étant prise en compte; nous n'en revenons toujours pas du travail colossal effectué sur cette mise à jour
5.5
! :bj:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6%
 
Posts: 35489
Images: 9480
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Banque d'images Python TI-83 Premium CE 5.5 pour SNT

Unread postby Adriweb » 13 May 2020, 06:43

Un exemple tout frais issu de la chaîne YouTube de TI :

User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Banque d'images Python TI-83 Premium CE 5.5 pour SNT

Unread postby critor » 13 May 2020, 09:53

Merci, j'ai rajouté à l'article. :)

Et effectivement, bien que l'image support ait des dimensions de timbre poste, son passage en niveaux de gris via la boucle de
getPixel()
+
setPixe()
à compter de 2:42 semble être très lent.
Si bien que la vidéo coupe sans attendre que ce soit terminé loin de là, et non sans conseiller de prendre des images encore plus petites. :p
Image

Cela correspond bien aux performances très décevantes déjà constatées pour ce genre de boucle.
Sauf que là à la différence, je ne vois pas d'astuce d'optimisation avec l'offre actuelle de fonctions...
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6%
 
Posts: 35489
Images: 9480
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti


Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 17 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
388 utilisateurs:
>380 invités
>3 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)