begin process at 2012 02 10 07:24:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CONVERSION D'UNE IMAGE

CONVERSION D'UNE IMAGE


 Description

Lors de la conception d'un logiciel de traitement d'images pour les caractères, chaque caractère est converti en une matrice M(7,5) à valeurs binaire (noir = 1 et blanc = 0)

A cause de problèmes de mémoire on a voulu compresser le vecteur M.

Ce programme fait la lecture de la matrice M et conversion de la matrice M en un vecteur V, et compression de vecteur V --> C
et en fin fait l'affichage de vecteur C ...  

Source

  • #include <iostream.h>
  • int m[7][5],c[20],v[35],d[35]; int n;
  • void chargement (int m[7][5]){
  • for(int i=0;i<7;i++)
  • for (int j=0;j<5;j++){
  • cout<<" v["<<((i*5)+j)<<"] : ";
  • cin >> m[i][j];
  • }
  • }
  • int conversion (int v[35]) {
  • for (int i=0;i<7;i++)
  • for (int j=0;j<5;j++)
  • v[(i*5)+j]=m[i][j];
  • return 0;
  • }
  • void compression (int c[20]) {
  • int k=1;
  • int p=0;
  • for (int i=0;i<35;i++) {
  • if (v[i] == v[i+1]){
  • k++;
  • c[p]=k;
  • }
  • else {
  • k=1;
  • p++;
  • }
  • }
  • }
  • int decompression (int d[35]) {
  • int k=0;
  • int b=v[0];
  • int rp;
  • for (int i=0;i<=35;i++){
  • rp =c[i];
  • for (int j=1;j<=rp;j++){
  • d[k]=b;
  • k++;
  • }
  • b=1-b;
  • }
  • return 0;
  • }
  • void affichage (int d[35]){
  • for(int i=0;i<35;i++)
  • cout << d[i];
  • }
  • int main(){
  • cout<<" \a========================================================\n";
  • cout<<" \a************* REALISER PAR MISSOUM Abdelkader ************* \n";
  • cout<<" \a======================================================================\n";
  • cout<<"\n\n";
  • cout<<" ==========================================\n";
  • cout<<" **********CHARGEMENT DE MATRICE************\n";
  • cout<<" ===========================================\n";
  • cout<<"\n\n";
  • chargement(m);
  • conversion(v);
  • compression (c);
  • decompression(d);
  • cout<<"\n\n";
  • cout<<" ===========================================\n";
  • cout<<" **********AFFICHAGE DE MATRICE*************\n";
  • cout<<" ===========================================\n";
  • cout<<"\n\n";
  • affichage (d);
  • cin>>n;
  • return 0;
  • }
#include <iostream.h>

 int m[7][5],c[20],v[35],d[35]; int n;
 
void chargement (int m[7][5]){
for(int i=0;i<7;i++)
  for (int j=0;j<5;j++){ 
    cout<<"  v["<<((i*5)+j)<<"] : ";
    cin >> m[i][j];
   }
}

int conversion (int v[35]) {
for (int i=0;i<7;i++)
    for (int j=0;j<5;j++) 
       v[(i*5)+j]=m[i][j];
return 0;
}

void compression (int c[20]) {
     int k=1;
     int p=0;

for (int i=0;i<35;i++) {
	if (v[i] == v[i+1]){
		k++;
		c[p]=k;
    }
	else {
		  k=1;
		  p++;
	  }
   }
}

int decompression (int d[35]) {
  int k=0;
  int b=v[0];
  int rp;
for (int i=0;i<=35;i++){
	rp =c[i];
for (int j=1;j<=rp;j++){
	 d[k]=b;
	 k++;
	}
		b=1-b;
   }
 return 0;
}

void affichage (int d[35]){
for(int i=0;i<35;i++)
cout << d[i];
}

int main(){
    
cout<<"          \a========================================================\n";
cout<<"        \a*************  REALISER PAR MISSOUM Abdelkader  *************      \n";
cout<<"    \a======================================================================\n";    
    
cout<<"\n\n";
    
cout<<"                ==========================================\n";
cout<<"               **********CHARGEMENT DE MATRICE************\n";
cout<<"               ===========================================\n";

cout<<"\n\n";

 chargement(m);
 conversion(v);
 compression (c);
 decompression(d);
 
cout<<"\n\n";

cout<<"               ===========================================\n";
cout<<"               **********AFFICHAGE DE MATRICE*************\n";
cout<<"               ===========================================\n";

cout<<"\n\n";

 affichage (d);
 cin>>n;
return 0;
}

 Conclusion

merci ...


 Sources du même auteur

SYSTEM EXPERT
CALCUL POLYNOMIAL

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture VIEWER COMPLET POUR LE TRAITEMENT DE L'IMAGE : IMANALYSE par Pistol_Pete
Source avec Zip Source avec une capture IMANALYSE : LOGICIEL DE TRAITEMENT DE L'IMAGE + DITHERING [W... par Pistol_Pete
Source avec Zip Source avec une capture DÉTECTION OPTIMALE DES CONTOURS: CANNY, DÉRICHE, SHENCASTAN par Pistol_Pete
Source avec Zip Source avec une capture DÉTECTION DES CERCLES DANS UNE IMAGE: HOUGH par Pistol_Pete

Commentaires et avis

Commentaire de gamemonde le 07/02/2008 00:42:02

# int decompression (int d[35]) {
# int k=0;
# int b=v[0];
# int rp;
# for (int i=0;i<=35;i++){
# rp =c[i];
# for (int j=1;j<=rp;j++){
# d[k]=b;
# k++;
# }
# b=1-b;
# }

<= 35 dépassement du tableau surtout que ça va jusqu a 20

#
# int decompression (int d[35]) // tu as une variable globale portant le meme nom



d[k]=b // même chose max 35 mais il fais plutôt de 0 à (35*34) car tu additionnes ton k dans la deuxième boucle au lieu de la première


et dernier juste par evolution on utilise maintenant iostream et non iostream.h

Commentaire de mogwai93 le 08/02/2008 08:19:01

"à valeurs binaire (noir = 1 et blanc = 0)"
ici, on peut saisir d'autres valeurs que 0 et 1 :-p

ta méthode de compression n'est rien d'autres que la compression RLE
... qui ne fera rien si tu saisis un damier
et qui risque fort de faire planter decompression.....

donc : à revoir le fonctionnement de la compression/decompression RLE


 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales