Une image numérique issue d'un caméra CCD est constituée d'un ensemble de pixels dont la valeur représente l'intensité lumineuse reçue par les capteurs de la caméra. Pour l'application courante, on se limite aux images dites, par abus de langage, « noir et blanc ». Ce sont en fait des images où la valeur des pixels peuvent prendre plus de 2 valeurs : pour un pixel codé sur 1 octet, il y a 256 nuances de gris possible, allant du noir au blanc. Plus justement ces images devraient s'appeler « en niveaux de gris ». Les images manipulées par le logiciel auront toutes les valeurs de leurs pixels codées sur 1 octet. Pour une image de 256 lignes sur 256 colonnes, il y a donc 256 * 256 pixels, et chaque pixel peut prendre 256 valeurs ! Le traitement d'images numériques consiste à appliquer des algorithmes sur des images pour améliorer le rendu, extraire des contours, … Les figures suivantes montrent une image originale et une image traité. Le traitement consiste à rendre l'image plus floue.
[...] L'héritage découle de l'utilisation des traitements similaire sur les données. - Classe Image : class Image { protected: int Width,Height; unsigned char public: unsigned char** loadImg(char *File, int* Width, int* Height); bool saveImg(char FileDest[], unsigned char int* Width, int* Height); bool flou(unsigned char int* Width, int* Height); bool luminosite(unsigned char int* Width, int* Height, int* indiceLum); bool contraste(unsigned char int* Width, int* Height, int* indiceCon); bool negatif(unsigned char int* Width, int* Height); unsigned char** agrandissement(unsigned char** Tab, int* Width, int* Height, int* facteur); unsigned char**rotation(unsigned char**Tab, int*Width, int*Height, char sens); - Classe Bmp : class Bmp :public Image { protected : int Components; int DataImg; unsigned char *Data;//Tableau permettant la récupération des pixels public : unsigned char** load(char *File, int* Width, int* Height); bool save(char FileSource[],char FileDest[],unsigned char int* Width,int* Height); - Classe Menu : class CMenu { protected: int choix; public: int menu(); unsigned char** traitement(Image image_a_traiter, int choix, int *Width, int *Height, unsigned char Tab); 4 Analyse des fonctions 2 La fonction de chargement d'un fichier texte Principe : Cette fonction permet de récupérer les données d'un fichier texte et de les stocker dans une matrice : c'est-à-dire un tableau à deux dimensions. [...]
[...] - La classe image permet la gestion d'un tableau de données issues d'un fichier texte, il en découle donc les attributs nécessaires à la gestion d'un tableau de données. Ses opérations sont enregistrement et chargement et toutes les fonctions de traitement d'image. - La classe Bmp quant à elle hérite de la classe image ; elle permet la gestion d'un tableau de données issues d'une image Bmp. Il en découle des attributs spécifiques au Bmp notamment ceux contenus dans le header. Ses opérations sont son enregistrement et chargement, ainsi que toutes les opérations accessibles par son héritage avec la classe image. [...]
[...] Pour l'image ci-dessus, on obtient l'image résultat suivante : Mis à part, les bords de l'image où le filtre est inapplicable, on remarque que la valeur 255 a été lissée et les pixels voisins ont été affectés par le filtre Contraintes diverses Pour la recette du logiciel vous devrez fournir en même temps que le dossier d'architecture du logiciel, une disquette (ou un CD-ROM) avec vos noms et prénoms dessus et contenant un répertoire appelé programme avec : - un fichier exécutable sous Windows ; - une image de test (sous forme d'un fichier texte) ; - éventuellement une image au format JPEG ou BMP ; - un fichier lisezmoi.txt contenant un manuel d'utilisation ; - Les images résultats porteront le nom de image_resultat*.* Un deuxième répertoire appelé source contiendra les sources de vos programmes. La programmation se fera en Vous veillerez à respecter au mieux les règles de la programmation par objet. Vous devrez impérativement utiliser au moins un héritage entre deux classes. Conseil pour définir une classe image : class Image{ private : unsigned char pixels[ . . ] ; int largeur ; int hauteur ; public : . [...]
[...] Analyse des fonctions La fonction de chargement d'un fichier texte La fonction de sauvegarde d'un fichier texte La fonction de chargement d'un fichier Bitmap La fonction de sauvegarde d'un fichier Bitmap La fonction de flou gaussien La fonction de réglage de la luminosité La fonction de réglage du contraste La fonction de traitement négatif La fonction d'agrandissement d'image La fonction de rotation d'image Les fonctions d'interface 34 VI. Bilan 35 A. Améliorations possibles du programme 35 B. Connaissances acquises 35 VII. Annexe 36 A. Listing des fonctions Image.h image.cpp Bmp.h Bmp.cpp Menu.h menu.cpp main.cpp 44 B. Manuel d'utilisation 45 Présentation du sujet 1 Objet Une image numérique issue d'une caméra CCD est constituée d'un ensemble de pixels dont la valeur représente l'intensité lumineuse reçue par les capteurs de la caméra. [...]
[...] Le traitement consiste à rendre l'image plus floue. image originale image traitée 2 Description du produit Le produit à fournir est un logiciel de traitement d'images sur une image en niveau de gris Présentation des services demandés au prototype Le logiciel fournira au moins les services suivants à l'utilisateur : - au moins un algorithme pour rendre une image floue ; - 1 ou plusieurs autres algorithmes (notés en bonus) ; - le logiciel peut accepter plusieurs formats d'image : - impérativement un simple tableau à deux dimensions de taille 20x20 qui contient des valeurs de pixels codés sur 1 octet (256 niveaux de gris) afin de pouvoir construire sur mesure des images de tests ; - en option (noté en bonus), le logiciel peut accepter en entrée des fichiers au format JPEG et/ou Bit Map (BMP) où les pixels sont codés sur un octet (256 niveaux de gris) ; les fichiers qui contiennent des images sont tous constitués d'une en-tête qui décrit l'image en termes de nombre de lignes, de colonnes, etc. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture