On peut savoir d'où tu sors le nombre 255? montre ton code!
On peut savoir d'où tu sors le nombre 255? montre ton code!
Si tu parles d'un errno, tu peux directement afficher sa description avec perror.
Si tu parles d'un retour de fonction, il faut regarder son mode d'emploi.
Si tu parles d'un retour de process, il faut regarder son mode d'emploi.
c'est un retour de fonction, desole
je lui demandais de me retourner -1, mais il m'affichait 255, du coup, j'ai pas bien saisi, en changeant mon code d'erreur, j'ai compris, mon programme ne sort pas avec des exceptions, tout est detruit correctement
mais, ca m'intrigue quand meme, les fichiers que j'essaie d'ouvrir sont tous integres
mais il arrete l'ouverture toujours au 300' fichier
a vrai dire, si je les ouvre avec fopen, ca marche nickel, mais je dois les ouvrir avec des routines speciales (c'est un format d'image specail et les images sont assez volumineuses)
est ce que quelqu'un pourrais me dire ce qui peut empecher l'ouverture d'un fichier?
Bonjour,
Avant d'ouvrir un fichier, fermez vous le(s) précédant(s) ?
Je ne saisis pas tout, mais un -1 qui se transforme en 255, c'est la valeur -1 qu'on affiche comme un unsigned char.je lui demandais de me retourner -1, mais il m'affichait 255, du coup, j'ai pas bien saisi, en changeant mon code d'erreur, j'ai compris, mon programme ne sort pas avec des exceptions, tout est detruit correctement
merci pour l'explication mais j'ai compris pour le 255
pour les fichiers, justement, je dois les laisser tous ouverts
c le but, car, sinon je deverais faire plusieurs ouvertures fermetures, et ca couterais enormement en temps de calcul
Le problème, c'est qu'il y a une limite au nombre de fichiers pouvant être ouverts simultanément...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Pour connaitre les limites de ton environnement tu as la commande ulimit. Il existe un équivalent en c.
Tu pourras éventuellement augmenter le nombre de fichiers ouverts possibles.
Au delà de cette limite, je ne sais pas ce qu'impose l'os.
si j'ai opte pour l'ouverture de tous les fichiers en meme temps, c'est bien parce que mon tuteur le veut ainsi, car, ca le derange de faire des ouvertures/fermetures
mais lui meme voulait que je travaille avec le mmap, sauf que si j'utilise cette facons la, cela voudra dire, que je deverais recoder toute une bibliotheque pour lire les images ".fits" ce qui est assez complexe, alors, que moi je dois d'avantage me concentrer sur le traitement du fond du ciel!!
les bibliotheques sont la:
une, simple est bien documentee, mais helas, pas adaptee a mon probleme et l'autre bien optimisee, basee sur mmap, mais pas documentee
voila, pourquoi je tergeverse a reecrire quelque chose deja existant , alors que j'ai beaucoup de travail a cote
il n 'y a pas de conception, ni d'architecture,
ce que je dois faire est comme suit:
je dois calculer la position de chaque sous image dans l'image globale
pour chaque couple, calculer l'intersection et en deduire des parametre
constituer un systeme d'equations lineaireset ainsi soustraire chaque Xi de l'image i, afin de pouvoir rassembler les images en un seul morceau, en éliminant le maximum de discontinuitéA*X=B
voila, si vous avez des idees, tout est bienvenu sur ce poste
je suis toujours en quete de la meilleure facon a gerer les fichiers, car c'est le vrai probleme, le reste etant des modeles mathematiques ou je m'en sors pas mal
déjà là, gros problème....
AVANT de se lancer dans du code et des solutions, il FAUT s"asseoir et réfléchir au problème et à l'algo.
Exposé peu clair -> problème pas vraiment compris -> solution pas adaptée.
- Tu as une grosse image.
- Tu as plusieurs petites images
jusque là ça va.
- Maintenant quel est le lien entre les petites et la grosse ?
- pourquoi avoir besoin de calculer l'intersection (entre quoi et quoi ??) ?
- pourquoi soustraire ?
- quel est le but final ?
Bonjour,
J'ai regardé la librarie CFITSIO. Pour ouvrir ces images elle à ses propres primitives auxquelles on donne le nom du fichier (et non un stream retourné par fopen).
Ces primitives sont de la forme:
=> est-ce qu'on a un problème avec fopen de stdio ou avec les primitives de cette librairie.int fits_open_file / ffopen
(fitsfile **fptr, char *filename, int iomode, > int *status)
Pour le reste, il est clair que votre algorithme étant en O(n^2) avec n=360 incite à trouver des solutions pour rester en O(n) partout ou c'est possible.
Vous avez pointé les ouvertures de fichiers, je vous ai incité à considérer aussi les entrées sorties disques (beaucoup plus coûteuses à mon sens puisqu'on devrait (re)lire 359 * 0,5 Go).
Ce que vous devez chercher à réduire, c'est les relectures.
Cela suppose que les données des images utilisées par votre algorithme pourront être extraites des fichiers et utilisées pour les 359 comparaisons.
Une fois ces données extraites vous pourrez fermer le fichier.
=> Même si votre librairie 'limite' le nombre de fichiers ouverts à 255, cela ne devrait plus être un soucis.
Cordialement
- W
quand je dis pas de conception, je veux dire,que je ne passe pas par lediagrammes et le reste, mais sinon, y a tout a fait une conception
alors ce que je dois faire est comme suit:
je travaillesur des images astronomique;
donc une image est une collecte de sous-images
comme les dispositifs d'aquisition ne sont pas fiable a 100%, il nous faut corriger le fond du ciel,
donc, je calcule l'intersection entre chaque deux images, ce qui reviens a les localiser dans l'espace(les coordonnees des points inf-gauche et sup-droit)
donc pour chaque intersection de deux images, je calcule deux coefficients suivant les valeurs des pixels dans les images donnees et leur carte de poids
a la fin de cette etape, j'aurais construit un systeme d'equation lineaire a resoudre par la methode LU par exemple, ce qui me donnerais au final les fonds de ciel de chaque images
on faisant la soustracation, " image[i]-fond_ciel[i]) je trouve des images final normalement plus belles a voir, plus adaptees aux scientifiques...
et il restera que l'etape de rassembler les morceaux qui est faits ailleurs
NB: pour une meme region du ciel y a plusieurs acquisitions , et cela pour obetnir au final une meilleure image, la plus fidele possible a la realite
merci de bien vouloir m'aider
Partager