Fichiers de tests pour projet

Fichiers de tests pour projet

by Uddhava Yann Monney -
Number of replies: 2

Bonjour,

J'ai besoin de tester des fichiers avec mon programme pour pouvoir ensuite les comparer avec ceux qui sont calculés avec le programme de démo . Comment faire pour pouvoir convertir un fichier image quelconque en un fichier exploitable dans notre cas ? J'ai essayé de nombreuses commandes systemes, des solutions online de convertion etc... mais apparement rien de marche car il s'agit toujours d'un format ppm P6 qui est produit a la convertion qui n'est pas comme le P3. Donc en général (en forcant l'execution des prgrms) le résultat se reduit soit a une erreur, soit a un grand rectangle monochrome qui ne garde plus rien de l'image. Alors voila, peut-on me proposer une solution pour pouvoir convertir des images em ppm p3 , ou alors convertir du format p6 vers p3 ... ? ca marcherait aussi .

Aussi un autre point que j'ai remarqué est que mon programme fait peut etre des erreurs sur les bordures des images qu'il converti : en prenant exemple sur l'arbre tree.txt , la transformation produit une image qui parait minutieusement la meme que celle du demo a la difference qu'il semble y avoir toujours un pixel de rogné en plus sur le bord (voir image, gauche demo, droite mon prgrm) : remarquez la rainure noire du bord qui semble plus epaisse sur mon resultat(j'ajoute que j'ai scrollé au maximum possible de la fenetre sur ce bord gauche, on ne peux aller plus loin) . Est-ce un defaut, et doit-il etre corrigé ?

Merci,

Mr Monney

Attachment Screenshot from 2018-12-01 03-07-22.png
In reply to Uddhava Yann Monney

Fichiers de tests pour projet

by Gaétan Herold -
Salut,
Pour la première question, si tu travailles sur Linux, une méthode détaillée est décrite à la fin de la série 5 pour convertir des images en format PPM P3, si tu es sur mac, je suis en train d’en chercher une qui marche, je pourrai te redire si je trouve cela.
Pour la seconde question, ajoutes-tu bien un bord noir d’un pixel à la fin de tous les filtrages, en ne tenant compte pour les filtrages que de l’image originale pour la rangée de pixel la plus au bord?

Meilleures salutations.

Gaétan Herold
In reply to Gaétan Herold

Re: Fichiers de tests pour projet

by Uddhava Yann Monney -

Re,

Je bosse sur les ordis des labos info, donc ca marche assez bien, hormis, d'ailleurs, certaines incompatibilités avec C++ 11 (je crois?) , j'y reviendrai.

C'est réglé pour la convertion des images jpg en ppm, et mon programme tourne avec, merci.

Alors, pour ce qui est de la bordure noire : je ne passe qu'une seule fois le rognement des bords sur l'image apres qu'elle ai été filtrée une fois, comme vous pourrez le voir dans le petit extrait de code : finissage_bord ne fait que de repasser sur tous les pixels du bord(col gauche/d et les 2 lignes du haut et du bas) et les met tous a 0 0 0 (noir) . Ensuite du coup, pour eviter du travail inutile, je ne procece qu'aux autres filtrage selon la valeur nbF sans retoucher de cette maniere aux bordures.

Seulement voila je ne comprend pas pourquoi l'image semble se retrécir. Je viens de lancer un test sur tree.txt en comparant les img du demo et de mon code (voir les imgs) . J'ai lancé le fichier tree.txt avec un parametre 10filtrages = nbF ; on voit clairement que les bords ne vont pas bien : le programme de démo semble ne pas y toucher, quant au miens il semble le retrécir d'autant que nbF grandit. Qu'en pensez vous ?

Un autre point sur lequel j'aimerais discuter est le temps d'éxécution du code pour un fichier donné. En effet en comparant le prgm de démo et le mien il y a une certaine différence(sans parler de l'image produite qui est légerement differente . . .) : pour un tree.txt avec 10 filtrages requis, démo éxécute en moins de 2secondes, alors que le miens en prend ~7-8 pour cette meme tache. Est-ce trop ? cela sera-t-il compté dans l'évaluation ? Et surtout devrais-donc passer plus de temps a optimiser mon code ? J'ai déja optimisé mon filtrage afin de n'avoir que 2 boucles for allant de 0 a 7 (donc O(cst)) pour la tache et il me semble dur de faire mieux ? Sinon l'autre partie gourmande de mon programme est le passage du tableau de pixels jusqu'au tableau seuillé qui je pense peux etre légerement optimisé. Les remplissages des entrées(l'image, de tableau des couleurs, des seuils etc...) se font naturellement sur profondeur 2(boucles imbr) avec tests de validité a chaque entree. Je pense pas que l'on puisse s'empecher de faire une copie de l'image à chaque fois que l'on repete un filtrage , car on doit travailler sur un support qui est l'image codée source qui doit etre MaJ a chaque fois que l'on  repete l'opération ? Quels points pensez-vous pouvoir améliorer ? (tous les passages de vectors sont par référence, pas d'erreurs la dessus)

Enfin aussi je ne sais pas pourquoi il semble y avoir des problèmes avec les versions de C++ installées, la fonction exit(0) ne fonctionne plus ! Et la console m'affiche un message qui cite C++ 11 , de meme pour les boucles for auto qui ne marchent pas, j'ai du toutes les changer en for normales, dommage. Je precise que j'ai ces bugs sur le VM Horizon, mais pas sur la VM CIO , et que le demo ne marche que sur le VM Horizon et pas l'autre VM, etc... l'autre VM est celle que l'on ouvre en tapant VB dans la recherche de programme du menu démarrer(VB IC CO...) .

Merci bien,

Yann

Attachment Screenshot from 2018-12-04 17-38-09.png
Attachment Screenshot from 2018-12-04 17-38-36.png