begin process at 2012 05 27 15:35:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > DETECTION DE CONTOURS DANS UNE IMAGE

DETECTION DE CONTOURS DANS UNE IMAGE


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :detection, contour, image, filtre Niveau :Débutant Date de création :25/10/2004 Date de mise à jour :20/01/2006 13:31:51 Vu / téléchargé :29 719 / 3 142

Auteur : semaj_james

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

L'objet de ce programme est de comprendre sous quelle forme une image est stockée dans un fichier et de comprendre le mécanisme de traitement d'image.

Les traitements sur l'image:
- Transformation de l'image en négatif
- lissage de l'image
- Utilisation de filtres (Roberts, Sobel, Prewitt)

Source

  • /* Detection de contours dans une image en utilisant les filtres:
  • - negatif
  • - roberts
  • - sobel
  • - prewitt
  • Programme fait par semaj_james
  • mail: florentjustin@hotmail.com */
  • #include<stdio.h>
  • #include<math.h>
  • char menu();
  • FILE * OpenFile(char *nom_fic, char *mode);
  • void c38(FILE *fic, FILE *fic2);
  • void bin(FILE *fic2, FILE *fic3,char men);
  • void negatif(FILE *fic, FILE *fic2);
  • void roberts(FILE *fic, FILE *fic2);
  • void sobel(FILE *fic, FILE *fic2);
  • void prewitt(FILE *fic, FILE *fic2);
  • int main(void)
  • {
  • FILE *fic,*fic2,*fic3;
  • char men;
  • do
  • {
  • //le fichier 99C.pgm doit etre dans le repertoire courant au programme
  • fic=OpenFile("99C.pgm","rb");
  • men=menu();
  • switch(men)
  • {
  • case '1': fic2=OpenFile("negatif.pgm","w+b");
  • c38(fic,fic2);
  • negatif(fic,fic2);
  • break;
  • case '2': fic2=OpenFile("roberts.pgm","w+b");
  • c38(fic,fic2);
  • roberts(fic,fic2);
  • fclose(fic2);
  • fic2=OpenFile("roberts.pgm","rb");// sert pour la binarisation
  • fic3=OpenFile("broberts.pgm","wb");
  • break;
  • case '3': fic2=OpenFile("sobel.pgm","w+b");
  • c38(fic,fic2);
  • sobel(fic,fic2);
  • fclose(fic2);
  • fic2=OpenFile("sobel.pgm","rb");
  • fic3=OpenFile("bsobel.pgm","wb");
  • break;
  • case '4': fic2=OpenFile("prewitt.pgm","w+b");
  • c38(fic,fic2);
  • prewitt(fic,fic2);
  • fclose(fic2);
  • fic2=OpenFile("prewitt.pgm","rb");
  • fic3=OpenFile("bprewitt.pgm","wb");
  • break;
  • case '5': break;
  • }
  • if (men!='5')
  • {
  • if(men!='1')
  • {
  • bin(fic2,fic3,men);
  • fclose(fic3);
  • }
  • fclose(fic);
  • fclose(fic2);
  • puts("\nImage traitee avec succes\n\n");
  • }
  • }while(men!='5');
  • return 0;
  • }
  • /*************************************************************************/
  • // ouverture d'un fichier
  • FILE * OpenFile(char *nom_fic, char *mode)
  • {
  • FILE * p_file = fopen (nom_fic, mode);
  • if(p_file==NULL)
  • {
  • printf("Impossible d'ouvrir ou d'ecrire sur le fichier: %s\n"
  • "Programme arrete",nom_fic);
  • exit(1);
  • }
  • return p_file;
  • }
  • /*************************************************************************/
  • char menu()
  • {
  • char men;
  • do
  • {
  • puts("*********************************************");
  • puts("* *");
  • puts("* TRAITEMENTS DE L'IMAGE *");
  • puts("* *");
  • puts("*********************************************\n\n");
  • puts("Utilisation du filtre :\n");
  • puts("1 => Negatif");
  • puts("2 => Gradient de Roberts");
  • puts("3 => Sobel");
  • puts("4 => Prewitt");
  • puts("5 => Quitter");
  • men=getch();
  • }while(men < '1' || men > '5');
  • return men;
  • }
  • /**************************************************************************/
  • void c38(FILE *fic, FILE *fic2) // traitement des 38 premiers caracteres
  • {
  • char carac[38];
  • fread(carac,1,38,fic);
  • fwrite(carac,1,38,fic2);
  • }
  • /**************************************************************************/
  • void negatif(FILE *fic, FILE *fic2)
  • {
  • unsigned char data[207][250];
  • int ligne,col;
  • for(ligne=0;ligne<207;ligne++) // lecture de 99c.pgm
  • {
  • fread(&data[ligne][0],1,250,fic);
  • // ecriture dans negatif.pgm chaque pixel est remplace par son complement … 255
  • for(col=0;col<250;col++)
  • {
  • data[ligne][col]=255-data[ligne][col];
  • fwrite(&data[ligne][col],1,1,fic2);
  • }
  • }
  • }
  • /*************************************************************************/
  • void roberts(FILE *fic, FILE *fic2)
  • {
  • int gx,gy,ligne,col;
  • long g;
  • unsigned char ampl[250];
  • unsigned char data[207][250];
  • for(ligne=0;ligne<207;ligne++)
  • fread(&data[ligne][0],1,250,fic); // lecture de 99c.pgm
  • // ecriture dans roberts.pgm Gradient de Roberts
  • for(ligne=0;ligne<207;ligne++)
  • {
  • for(col=0;col<249;col++)
  • {
  • if (ligne==206) // rempli la 207eme ligne de la photo
  • ampl[col]=0;
  • else
  • { // derivee en x
  • gx=data[ligne][col+1]-data[ligne][col];
  • // derivee en y
  • gy=data[ligne+1][col]-data[ligne][col];
  • // amplitude
  • g=sqrt((float)gx*gx+(float)gy*gy);
  • if (g>255) g=255;
  • ampl[col]=g;
  • }
  • }
  • ampl[249]=0; // rempli la colonne 249 de la photo
  • fwrite(&ampl[0],1,250,fic2);
  • }
  • }
  • /**************************************************************************/
  • void sobel(FILE *fic, FILE *fic2)
  • {
  • int gx,gy,ligne,col;
  • long g;
  • unsigned char ampl[250];
  • unsigned char data[207][250];
  • for(ligne=0;ligne<207;ligne++)
  • fread(&data[ligne][0],1,250,fic); // lecture de 99c.pgm
  • // ecriture dans sobel.pgm
  • for(ligne=0;ligne<207;ligne++)
  • {
  • for(col=0;col<250;col++)
  • {
  • if (ligne==206 || ligne==0) // rempli la 1ere et la 207eme ligne de la photo
  • ampl[col]=0;
  • else if (col==0 || col==249) // rempli la 1ere et la 250eme colonne de la photo
  • ampl[ligne]=0;
  • else
  • { // derivee en x
  • gx=(int)(
  • - (data[ligne-1][col-1] + data[ligne][col-1] + data[ligne+1][col-1])
  • + (data[ligne-1][col+1] + data[ligne][col+1] + data[ligne+1][col+1]));
  • // derivee en y
  • gy=(int)(
  • - (data[ligne-1][col-1] + data[ligne-1][col] + data[ligne-1][col+1])
  • + (data[ligne+1][col-1] + data[ligne+1][col] + data[ligne+1][col+1]));
  • // amplitude
  • g=sqrt((float)gx*gx+(float)gy*gy); // amplitude
  • if (g>255) g=255;
  • ampl[col]=g;
  • }
  • }
  • fwrite(&ampl[0],1,250,fic2);
  • }
  • }
  • /**************************************************************************/
  • void prewitt(FILE *fic, FILE *fic2)
  • {
  • int gx,gy,ligne,col;
  • long g;
  • unsigned char ampl[250];
  • unsigned char data[207][250];
  • for(ligne=0;ligne<207;ligne++)
  • fread(&data[ligne][0],1,250,fic); // lecture de 99c.pgm
  • // ecriture dans sobel.pgm
  • for(ligne=0;ligne<207;ligne++)
  • {
  • for(col=0;col<250;col++)
  • {
  • if (ligne==206 || ligne==0) // rempli la 1ere et la 207eme ligne de la photo
  • ampl[col]=0;
  • if (col==0 || col==249) // rempli la 1ere et la 250eme colonne de la photo
  • ampl[ligne]=0;
  • else
  • { // derivee en x
  • gx=(int)(
  • - (data[ligne-1][col-1] + 2*data[ligne][col-1] + data[ligne+1][col-1])
  • + (data[ligne-1][col+1] + 2*data[ligne][col+1] + data[ligne+1][col+1]));
  • // derivee en y
  • gy=(int)(
  • - (data[ligne-1][col-1] + 2*data[ligne-1][col] + data[ligne-1][col+1])
  • + (data[ligne+1][col-1] + 2*data[ligne+1][col] + data[ligne+1][col+1]));
  • // amplitude
  • g=sqrt((float)gx*gx+(float)gy*gy);
  • if (g>255) g=255;
  • ampl[col]=g;
  • }
  • }
  • fwrite(&ampl[0],1,250,fic2);
  • }
  • }
  • /**************************************************************************/
  • void bin(FILE *fic2, FILE *fic3,char men)
  • {
  • int seuil,max,min,ligne,col;
  • unsigned char data[207][250];
  • c38(fic2,fic3);
  • for(ligne=0;ligne<207;ligne++) // lecture du fichier.pgm
  • fread(&data[ligne][0],1,250,fic2);
  • // definition du seuil
  • if (men=='2')
  • seuil=11; // seuil pour roberts
  • else
  • {
  • for(ligne=0;ligne<207;ligne++)
  • {
  • for(col=0;col<250;col++)
  • {
  • if (col==0 && ligne==0) // initialise max et min et evite max>250 et min<5
  • { max=2; min=250; }
  • if (data[ligne][col] < min && data[ligne][col] > 5) min=data[ligne][col];
  • if (data[ligne][col] > max && data[ligne][col] < 250 ) max=data[ligne][col];
  • }
  • }
  • seuil=(max+min)/4; //definition du niveau du seuil
  • }
  • // ecriture de binarisation dans fic3
  • for(ligne=0;ligne<207;ligne++)
  • {
  • for(col=0;col<250;col++)
  • {
  • if (data[ligne][col] < seuil)
  • data[ligne][col]=0;
  • else
  • data[ligne][col]=255;
  • fwrite(&data[ligne][col],1,1,fic3);
  • }
  • }
  • }
/*  Detection de contours dans une image en utilisant les filtres:
       - negatif
       - roberts
       - sobel
       - prewitt
   
   Programme fait par semaj_james
   mail: florentjustin@hotmail.com   */
   

#include<stdio.h>
#include<math.h>


char menu();
FILE * OpenFile(char *nom_fic, char *mode);
void c38(FILE *fic, FILE *fic2);
void bin(FILE *fic2, FILE *fic3,char men);
void negatif(FILE *fic, FILE *fic2);
void roberts(FILE *fic, FILE *fic2);
void sobel(FILE *fic, FILE *fic2);
void prewitt(FILE *fic, FILE *fic2);


int main(void)
{
FILE *fic,*fic2,*fic3;
char men;

do
   {
   //le fichier 99C.pgm doit etre dans le repertoire courant au programme
   fic=OpenFile("99C.pgm","rb"); 
   men=menu();
   switch(men)
      {
      case '1': fic2=OpenFile("negatif.pgm","w+b");    
	      c38(fic,fic2);
	      negatif(fic,fic2);
	      break;
       case '2': fic2=OpenFile("roberts.pgm","w+b");
	       c38(fic,fic2);
	       roberts(fic,fic2);
	       fclose(fic2);
	       fic2=OpenFile("roberts.pgm","rb");// sert pour la binarisation
	       fic3=OpenFile("broberts.pgm","wb");
	       break;
       case '3': fic2=OpenFile("sobel.pgm","w+b");
	       c38(fic,fic2);
	       sobel(fic,fic2);
	       fclose(fic2);
	       fic2=OpenFile("sobel.pgm","rb");
	       fic3=OpenFile("bsobel.pgm","wb");
	       break;
       case '4': fic2=OpenFile("prewitt.pgm","w+b");
	       c38(fic,fic2);
	       prewitt(fic,fic2);
	       fclose(fic2);
	       fic2=OpenFile("prewitt.pgm","rb");
	       fic3=OpenFile("bprewitt.pgm","wb");
	       break;
       case '5': break;
       }
       
   if (men!='5')
      {
      if(men!='1')
         {
         bin(fic2,fic3,men);
         fclose(fic3);
         }
      fclose(fic);   
      fclose(fic2);
      puts("\nImage traitee avec succes\n\n"); 
      }
           
   }while(men!='5');

return 0;
}

/*************************************************************************/
// ouverture d'un fichier

FILE * OpenFile(char *nom_fic, char *mode)
{
   FILE * p_file = fopen (nom_fic, mode);
   if(p_file==NULL)
      {
      printf("Impossible d'ouvrir ou d'ecrire sur le fichier: %s\n"
             "Programme arrete",nom_fic);
      exit(1);
      } 
   return p_file;
} 

/*************************************************************************/

char menu()
{
char men;

do
   {
   puts("*********************************************");
   puts("*                                           *");
   puts("*           TRAITEMENTS DE L'IMAGE          *");
   puts("*                                           *");
   puts("*********************************************\n\n");
   puts("Utilisation du filtre :\n");
   puts("1 => Negatif");
   puts("2 => Gradient de Roberts");
   puts("3 => Sobel");
   puts("4 => Prewitt");
   puts("5 => Quitter");
   men=getch();
   }while(men < '1' || men > '5');
return men;
}

/**************************************************************************/

void c38(FILE *fic, FILE *fic2) // traitement des 38 premiers caracteres
{
char carac[38];

fread(carac,1,38,fic);
fwrite(carac,1,38,fic2);
}

/**************************************************************************/

void negatif(FILE *fic, FILE *fic2)
{
unsigned char data[207][250];
int ligne,col;

for(ligne=0;ligne<207;ligne++)     // lecture de 99c.pgm
   {
    fread(&data[ligne][0],1,250,fic);

// ecriture dans negatif.pgm chaque pixel est remplace par son complement … 255

   for(col=0;col<250;col++)
      {
      data[ligne][col]=255-data[ligne][col];
      fwrite(&data[ligne][col],1,1,fic2);
      }
    }
}

/*************************************************************************/

void roberts(FILE *fic, FILE *fic2)
{
int gx,gy,ligne,col;
long g;
unsigned char ampl[250];
unsigned char data[207][250];

for(ligne=0;ligne<207;ligne++)
    fread(&data[ligne][0],1,250,fic);    // lecture de 99c.pgm

     // ecriture dans roberts.pgm  Gradient de Roberts

for(ligne=0;ligne<207;ligne++)
   {
   for(col=0;col<249;col++)
      {
       if (ligne==206)    // rempli la 207eme ligne de la photo
	 ampl[col]=0;
       else
	  { // derivee en x
	  gx=data[ligne][col+1]-data[ligne][col];

	  // derivee en y

	  gy=data[ligne+1][col]-data[ligne][col];

	   // amplitude

	  g=sqrt((float)gx*gx+(float)gy*gy);
	  if (g>255)  g=255;
	  ampl[col]=g;
	  }
      }
   ampl[249]=0;              // rempli la colonne 249 de la photo
   fwrite(&ampl[0],1,250,fic2);
   }
}

/**************************************************************************/

void sobel(FILE *fic, FILE *fic2)
{
int gx,gy,ligne,col;
long g;
unsigned char ampl[250];
unsigned char data[207][250];

for(ligne=0;ligne<207;ligne++)
    fread(&data[ligne][0],1,250,fic);    // lecture de 99c.pgm

     // ecriture dans sobel.pgm

for(ligne=0;ligne<207;ligne++)
   {
   for(col=0;col<250;col++)
      {
       if (ligne==206 || ligne==0)  // rempli la 1ere et la 207eme ligne de la photo
	 ampl[col]=0;
       else if (col==0 || col==249)    // rempli la 1ere et la 250eme colonne de la photo
	 ampl[ligne]=0;
       else
	  { // derivee en x

	  gx=(int)(
	  -  (data[ligne-1][col-1] + data[ligne][col-1] + data[ligne+1][col-1])
	  +  (data[ligne-1][col+1] + data[ligne][col+1] + data[ligne+1][col+1]));

		 // derivee en y

	  gy=(int)(
	  -  (data[ligne-1][col-1] + data[ligne-1][col] + data[ligne-1][col+1])
	  +  (data[ligne+1][col-1] + data[ligne+1][col] + data[ligne+1][col+1]));

		 // amplitude

	  g=sqrt((float)gx*gx+(float)gy*gy);               // amplitude
	  if (g>255)  g=255;
	  ampl[col]=g;
	  }
      }
   fwrite(&ampl[0],1,250,fic2);
   }
}

/**************************************************************************/

void prewitt(FILE *fic, FILE *fic2)
{
int gx,gy,ligne,col;
long g;
unsigned char ampl[250];
unsigned char data[207][250];

for(ligne=0;ligne<207;ligne++)
    fread(&data[ligne][0],1,250,fic);    // lecture de 99c.pgm

     // ecriture dans sobel.pgm

for(ligne=0;ligne<207;ligne++)
   {
   for(col=0;col<250;col++)
      {
       if (ligne==206 || ligne==0)  // rempli la 1ere et la 207eme ligne de la photo
	 ampl[col]=0;
       if (col==0 || col==249)    // rempli la 1ere et la 250eme colonne de la photo
	 ampl[ligne]=0;
       else
	  {      // derivee en x
	  gx=(int)(
	  -  (data[ligne-1][col-1] + 2*data[ligne][col-1] + data[ligne+1][col-1])
	  +  (data[ligne-1][col+1] + 2*data[ligne][col+1] + data[ligne+1][col+1]));

		 // derivee en y

	  gy=(int)(
	  -  (data[ligne-1][col-1] + 2*data[ligne-1][col] + data[ligne-1][col+1])
	  +  (data[ligne+1][col-1] + 2*data[ligne+1][col] + data[ligne+1][col+1]));

		 // amplitude

	  g=sqrt((float)gx*gx+(float)gy*gy);
	  if (g>255)  g=255;
	  ampl[col]=g;
	  }
      }
   fwrite(&ampl[0],1,250,fic2);
   }
}

/**************************************************************************/

void bin(FILE *fic2, FILE *fic3,char men)
{
int seuil,max,min,ligne,col;
unsigned char data[207][250];

c38(fic2,fic3);


for(ligne=0;ligne<207;ligne++)     // lecture du fichier.pgm
    fread(&data[ligne][0],1,250,fic2);

// definition du seuil


if (men=='2')  
   seuil=11;  // seuil pour roberts
else
   {   

   for(ligne=0;ligne<207;ligne++)
      {
      for(col=0;col<250;col++)
	 {
	 if (col==0 && ligne==0)    // initialise max et min et evite max>250 et min<5
	    { max=2;   min=250; }
	 if (data[ligne][col] < min && data[ligne][col] > 5)   min=data[ligne][col];
	 if (data[ligne][col] > max && data[ligne][col] < 250 )   max=data[ligne][col];
	 }
      }
   seuil=(max+min)/4;  //definition du niveau du seuil
   }

// ecriture de binarisation  dans fic3
for(ligne=0;ligne<207;ligne++)
   {
   for(col=0;col<250;col++)
      {
      if (data[ligne][col] < seuil)
	 data[ligne][col]=0;
      else
	 data[ligne][col]=255;
      fwrite(&data[ligne][col],1,1,fic3);
      }
    }
}

 Conclusion

Le zip contient:
- le sujet (pdf) qui explique l'utilisation des filtres
- l'image 99c.pgm
- le code

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • 99C.PGMTélécharger ce fichier [Réservé aux membres club]51 788 octets
  • detection.cTélécharger ce fichier [Réservé aux membres club]Voir ce fichier8 135 octets
  • enonce.pdfTélécharger ce fichier [Réservé aux membres club]594 299 octets

Télécharger le zip


 Historique

25 octobre 2004 13:51:26 :
25 octobre 2004 13:57:07 :
27 octobre 2004 10:30:40 :
16 janvier 2005 10:12:34 :
20 janvier 2006 13:31:52 :
- suppression des fonctions non standard - corrections de quelques bugs - sécurisation du programme lors de l'ouverture des fichiers (évite au programme de planter si un fichier n'existe pas ou ne peut être ouvert)

 Sources du même auteur

Source avec Zip ALGORITHME DE DAVIS PUTNAM

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture TRAITEMENT DE L'IMAGE: FILTRE MÉDIAN EN TEMPS CONSTANT par Pistol_Pete
Source avec Zip Source avec une capture FFT2D, IMAGE, SPECTRE, FILTRE PASSE-BAS PASSE-HAUT par JCDjcd
Source avec Zip Source avec une capture TRAITEMENT DE L'IMAGE : APPLICATION DE FILTRES (CMUGRAPHIC... par Pistol_Pete

Commentaires et avis

Commentaire de cyber_N le 14/01/2005 21:18:55

J'ai testé ce code (projet.cpp) avec visual c++ 6.0 ; Ca marche pas: il y a 3 erreurs (fonctions non déclarées) et 6 warnings !!

ce code serait pour Linux/UNIX ??

Commentaire de semaj_james le 16/01/2005 10:24:23

Ce code marche tres bien sous windows.  je ne l'ai pas fait marcher sous visual c++, je l'ai fait avec turbo c++ de Borland. Je n'ai aucune erreur ni warning.

sur quelles lignes il te met les erreurs ? et les warnings ?

possedes tu les bibliotheques: stdio.h, math.h, conio.h, dos.h ?

Commentaire de nels2711 le 02/02/2005 11:39:45

Bonjour,

Oui j posséde bien ces bibliothéques.

PS: j'ai le même probléme
J'ai Testé ton programme sous Windows XP (qui posséde les bibliothéques) et sous Debian.

Commentaire de mikabail le 19/10/2005 15:39:28

le code marche si l'on met ces lignes en commentaire !
(elles servent a effacer l'ecran, ce qui n'est pas indispansable)

test avec Visual C++ et Windows XP

Commentaire de thegreat03 le 12/11/2006 09:26:54

bonjours. je n'ai pas encore tester ce programme, mais ce ke je voulais comprendre comment vous detectez les contour dans cette image? et pourkoi vous avez attribuer a chaque pixel un octet?

Commentaire de MILAHA13 le 04/04/2010 10:01:05 7/10

bonjour,  je veux savoir comment detecter le contour d'une image et mettre sa contour en vert par exemple en c#
merci;

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Traitement d'image : Detection de contour [ par Bambi07 ] je cherche &#224; d&#233;terminer les contours d'un objet dans une image en niveaux de gris.Tous les pixels de l'objet sont quasiment au meme niveau d extraction du contour d'une image BMP [ par juliette ] On a une image en noir et blanc et on souhaiterait extraire son contour.Les images sont sous le format BMP.Extraire le contour d'une image consiste à Contour d une image [ par vegeta89 ] Bonjour Voici depuis quelque temps que je voudrais cr&#233;er une m&#233;thode qui puisse en fonction d une image donn&#233;e me donne les coordonn&#2 les filtres de daubechies [ par haroudi19 ] &nbsp;bonjour&nbsp;&nbsp; tous le mondeje veux savoire comment appliquer un filtre de daubechies sur une image pr&#233;cisement comment faire le produ Detection de couleur dans une image [ par Darkness17068 ] Bonjour,j'aimerais pouvoir detecter la couleur jaune sur une image BMP. Quelqu un pourrait m aider a trouver un code source s il existe? Merci Detecteur de harris pour la detection des coins dans une image [ par samslay ] Bonjour, en fait tout est dis dans le sujet , svp je charche une personne pour m'aiderà la programmation en C++ pour le detecteur des coins nommé le f contour et points [ par razebitum ] Bonjour, Voila, j'ai une image bitmap en niveaux de gris, sur laquelle j'ai rajouté des points de couleurs assez voyantes (rouge/vert). Ces points mer Filtre de bayer [ par zoomeo ] Salut a tous!je poste ce message car j'ai un petit soucis...Je dois réaliser un "debayeuriseur" et je ne comprend pas trop le principe, du moins je ne la detection du route les frantiere de la route dans une image [ par Amel3 ] bonjourje suis besoin d'un code source qui fait la detection d'une route dans une image en c++ builder6  un code qui ecrire une route a 15pixel de lar filtre moyenneur [ par hassiba45 ] salut tous le monde, j'essaye de faire  un filtre  moyenneur  sur une image  BMP  en  C++  builder  6, mon pgm n'affiche pas le filtre correctement ca


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,827 sec (3)

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