π
<-
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

Message non lude critor » 12 Mai 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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude Adriweb » 13 Mai 2020, 06:43

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

Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude critor » 13 Mai 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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor


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

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 76 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
941 utilisateurs:
>922 invités
>14 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)