π
<-

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: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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 :


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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14744
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
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: 48%
 
Posts: 41981
Images: 15887
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor


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 15 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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.
849 utilisateurs:
>835 invités
>8 membres
>6 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)