hagbuck / imagetools Goto Github PK
View Code? Open in Web Editor NEWImagetools is a school project for manipulate PGM and BMP images
License: MIT License
Imagetools is a school project for manipulate PGM and BMP images
License: MIT License
Lecture d'un BMP et stockage dans la structure ( #5 )
Le script de test sort l'erreur 3 (ERR_IMAGE_FILE_IS_INCORRECT) sur les PGM excepter lena et feep... Il faut trouver pourquoi et vite
Établir les différentes fonctionnalité et mécanique de la GUI.
Pour les version à suivre, il faudrait mettre à jour le Makefile et le mettre en Anglais.
Pourquoi pas en proposer plusieurs dans différentes langue ? A voire plus tard
Pendant enregistrement d'une image PGM
*** stack smashing detected ***: <unknown> terminated Aborted (core dumped)
Dépassement mémoire.
La taille du tableau contenant la chaîne de caractères était définit par #define FILE_MAX_SIZE 2048
. La valeur à été passé a 4096. Dans l'idéal il faudrait allouer la mémoire nécessaire plutôt que de passer par une constante.
En lecture d'un fichier.
Ajout de l'histogramme en couleur dans l'interface CI uniquement pour les BMP
Application du filtre Sobel qui n'est qu'une combinaison du FIR border_x et FIR border_y #14
Enregistrer l'histogramme comme une image PGM
Créer une structure permettant la représentation d'un histogramme. Ainsi que la possibilité de le sauvegarder en format image
Il faut définir une liste de commandes (paramètres) et leurs fonctionnements pour les faire matcher avec les fonctionnalité d'imagetools
Les BMPs sont différents des PGM, il faut concevoir la structures qui va représenter en mémoire un BMP
Sauvegarde d'un BMP (#5)
Les structures et fonctions RGB commencent à devenir nombreuse, il faudrait les mettre dans un autre fichier
Il serait intéressant de développer des histogramme cumulé, voire nécessaire pour l'égalisation
Il devrait être différents.
Ajout de l'histogramme en couleur dans l'interface CLI
Permettre la génération d'image représentant toutes les composante d'un histogramme
Concevoir et désigner les interfaces console et graphique
Chaque interface doit être le plus user friendly possible.
Se référer au README.md pour avoir la liste non exhaustive des fonctionnalité à intégrer
Il faudrait si possible gérer les PGM P5 qui sont des PGM binaire alors que les PGM P2 sont des fichiers plats
Lister le contenue d'un dossier et pouvoir naviger simplement. Il faut designer et concevoir les actions possible.
On utilisera surement dirent.h
. Sinon GTK+
mais sa licence GPL contaminera notre MIT
Concevoir un fonction qui prend un BMP (#5) et qui renvois un autre BMP inversé
Dans l'idéal on aurait aimé pouvoir afficher les histogrammes dans la fenêtre, mais cela s'avère un petit peux compliqué. Pour l'instant on ne peut que les sauvegarder.
Le problème c'est qu'on affiche des BMP_image et donc on convertie les histogramme en image, or c'est beaucoup plus difficile de réduire un BMP_image en hauteur qu'un BMP_histogramme
Trop de code répétitif surtout pour lire les nombres. A optimiser.
Il faut choisir la bibliothèque à utiliser pour développer l'interface graphique.
Il faut prendre en compte, la technologie en elle même et la compatibilité de la licence avec nos objectifs
On a finit de coder une version présentable pour les BMP, il faut maintenant mettre une vue similaire pour les PGM
Dans l'idéal, il sera judicieux de sauvegarder les lignes des PGM par paquets de 70 caractères maximum.
Il faudrait faire un script sh qui effectue un certain nombre d'opération sur plusieurs fichier afin de générer plusieurs images de rendu pour gagner du temps lors de la démonstration et pour avoir un référentiel de performance.
Il faudrait changer les couleurs de l'histogramme. Que le fond soit noir et les trait blanc, ce qui aurait plus de sans si on fessait un cumul des différentes composante de l'histogramme
Il faut ajouter des const dans les paramètres surtout dans le PGM mais aussi dans le BMP.
Rappel:
TYPE* ptr
: Le pointeur peut venir pointer autre chose
TYPE* const ptr
: Le pointeur ne peut pas pointer autre chose, mais ce qu'il pointe peut être modifier
const TYPE* const ptr
: Le pointeur ne peut pas être modifier ainsi que ce qu'il pointe
Coder l'égalisation de l'image et de l'Histogramme.
Il faut créer un filtre qui inverse l'image
Il faut définir si on applique le filtre sur le PGM_image
directement ou si la fonction de filtre renvoi un autre PGM_image
.... Ou les deux !
Sur les images de grande taille, il y a une bande de couleur anormalement claire sur la gauche.
Pouvoir inverser l'image verticalement et horizontalement
Ajout d'une structure qui contient un Histogramme (Conception de la structure)
Ajout d'une fonction prenant un PGM_image
et qui renvoie son Histogramme
Il serait intéressant de pouvoir lire un dossier complet et d'appliquer les modifications à toutes les image du dossier.
Dans le cas où l'utilisateur passe un pointeur NULL aux fonctions, cela risque de faire planter les fonctions. Il faut gérer ce cas là
Sur la petite image FEEP, l'inverse ne marche plus
Coder le filtre numérique RIF pour les image PGM P2
Pouvoir inverser les images horizontalement ou verticalement
Trier les fonctions dans le .h pour plus de lisibilite. Cf le BMP.h
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.