TRAITEMENT DE L'IMAGE: SEGMENTATION PAR CROISSANCE DE RÉGION

xkamen Messages postés 26 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 31 janvier 2008 - 17 janv. 2007 à 20:56
hibawissem Messages postés 1 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 23 mars 2011 - 23 mars 2011 à 23:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41140-traitement-de-l-image-segmentation-par-croissance-de-region

hibawissem Messages postés 1 Date d'inscription mercredi 23 mars 2011 Statut Membre Dernière intervention 23 mars 2011
23 mars 2011 à 23:10
bonjour ,
j'ai un repertoire qui contient trois sous repertoire et chaque sous reertoire contient des fichiers .bmp
je veux lister ses fichiers ,,,j'ai arrivé a lister les sous repertoire mais les fichier non
je travaille en c++ sous ubuntu,
j'ai fais un code et j ne sas pas quoi ajouter ou modifier pour qu'il me liste les fichiers
voici le code :

int main()
{
//strerror char * (errnum int);
// Variables globales
DIR* img= NULL;
struct dirent* fichier=NULL;
char *nomfichier=NULL;
int i=0;
char* tab1 [3];
int nb=0;


img = opendir("/home/saida/main-signe-arabe_2010mai11");

// Si succès, parcours du repertoire :

if( img != NULL )
{
fichier=readdir(img);

if ( fichier == NULL )
{
cout << "Erreur acces fichier ";
}
else

while ( fichier != NULL && i<=3 )
{
nomfichier=fichier->d_name;
if((fichier->d_type==DT_DIR )&& (strcmp(fichier->d_name, ".") != 0 && strcmp(fichier->d_name, "..") != 0))
{
cout << nomfichier << "\n";
//fichier=readdir(img);
tab1[i]=nomfichier;
nb=nb+1;
}
fichier=readdir(img);
}//fin du while



i=i+1;

}
else

{
cout << "erreur d'acces au repertoire" ;
}

cout << tab1[i] << "\n";
cout << "nombre =" << nb <<"\n";
souicioql Messages postés 24 Date d'inscription mercredi 12 mai 2010 Statut Membre Dernière intervention 26 mai 2011
12 janv. 2011 à 19:43
slt
Moi aussi je cherche à faire une segmentation d'image par la méthode de Markov.
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
26 janv. 2007 à 12:53
Salut Lindewell

Ce n'est pas normal que tu n'arrive pas à compiler la lib cmugraphics. Normalement avec n'importe quel compilateur C++ tu devrais y arriver.
Tu as suivit toutes les instructions sur mon site internet?
http://pistol.petesampras.free.fr

Sinon merci de ton commentaire. Je vais essayer d'utiliser openCV pour mes futurs programmes. Mais le seul problème à cette lib c'est que presque tout est déjà fait...
lindewell Messages postés 1 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 25 janvier 2007
25 janv. 2007 à 11:43
Salut tes programmes de traitement d'image ont l'air intéressant seul problème tu utilises une bibliothèque has-been CMUgraphics, je me suis cassé la tête a essayer de la compiler pour MS Visual C++ 2005 sans succès, ta version compilée pour VC6 marche pas chez moi. Je suis curieux de savoir si quelqu'un a reuissi à compiler tes programmes avec VC8. Si oui merci de faire suivre les bibliothèsques compilées.
A part ça félicitations mais pourquoi tu n'utilise pas OpenCV?
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
20 janv. 2007 à 13:17
Ca a l'air très intéressant ce que tu fais et j'ai hâte de voir ton projet tourner.
En tout cas si tu veux reprendre ma source, c'est avec grand plaisir, l'adaptation de cette fonction en 3D ne doit pas être très compliquée.
Bonne continuation et tiens moi au courant de l'évolution de ton prog.
xkamen Messages postés 26 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 31 janvier 2008
18 janv. 2007 à 18:56
Salut PISTOL_PETE,

Pour mes programmes 3D avec des ondelettes, on parle de niveaux de détail dans l'affichage. Pour cela, il suffit de récupérer la valeur d'un voxel de l'ondelette au niveau le plus détaillé pour le traiter avec ton programme (une fois passé en 3D). Mais l'avantage des ondelettes est le fait que l'on peut facilement compresser les données, ce qui permet de réduire le coût mémoire. Mais, on peut aussi utiliser les niveaux de détail des ondelettes pour afficher l'objet 3D avec le niveau de détail le plus approprié afin de respecter des conditions d'interaction quasi temps réel. Mon seul problème actuellement est que j'utilise les Marching Cubes pour l'affichage, mais j'espère pouvoir utiliser une autre méthode plus rapide, mais je n'ai pas le temps de m'y mettre durant ma thèse. Dès que j'aurai fini mon site, je te donnerai le lien et tu pourras voir mon travail plus en détail, car j'utilise plein de structure et d'algorithmes plus ou moins complexes pour réussir à sculpter un objet (relativement gros : 1024^3, donc pas assez de place dans la RAM, tout en ayant un affichage satisfaisant : c'est à dire qui respecte un framerate donné). Donc je n'utilise pas que les ondelettes, mais plutot la choe suivante : un octree pour découper mon objet 3D en un certain nombre de blocs de taille fixe, et chacun de ces blocs est décomposé en ondelettes, et sur chacun de ces blocs je peux choisir un niveau de détail pour l'affichage et le travail. Je ne pense pas qu'ici, j'ai suffisamment de place pour exposer tout ça, mais bientot mon site contiendra tout ça, donc tu pourras mieux comprendre ce que je fais.
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
18 janv. 2007 à 12:07
Salut XKAMEN

Dans l'immédiat je ne compte pas transformer mes programmes en 3D. Cependant, pour ce type de programme, le passage à la 3D est assez simple, il suffit d'ajouter une dimension à toutes les fonctions. Pour tes programmes 3D avec des ondelettes, il faut vérifier que le voxel appartient bien à l'ondelette avant de le traiter. Mais c'est très astucieux de faire cela, tu dois gagner beaucoup en temps de calcule.
Au niveau du rendu graphique, ca ne gène pas trop d'utiliser des ondelettes?
xkamen Messages postés 26 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 31 janvier 2008
17 janv. 2007 à 20:56
Salut,

Dans la suite du traitement d'image, cela me paraît correcte. Dis moi, est ce que tu comptes transformer tes programmes pour le cas en 3D ? Car cela peut paraître intéressant, puisque je manipule sans arrêt des objets 3D définis à l'aide de voxels, sauf qu'étant donné que c'est très couteux en mémoire, j'utilise des ondelettes 3D pour trouver un compromis entre la vitesse d'affichage, la vitesse de traitement (puisque j'utilise ces données dans le cadre de la sculpture virtuelle pour ma thèse), et le coût mémoire (c'est à dire ne pas dépasser la quantité de RAM libre en utilisant une technique de système de cache). :D

Sinon, dans l'image miniature, tu as mis 'Voisinage' avec 2 n, il faudrait le corriger ;D
Rejoignez-nous