DeusExMachina
Lieutenant
- Registriert
- Jan. 2008
- Beiträge
- 618
Moin Moin,
für mein Studium betrachten wir grade C und wir haben die Aufgabe bekommen in einer Dicom Datei die Bilddaten zu extrahieren.
Die Daten werden dann auf verschiedenste Art und Weiße manipuliert aber das ist alles schon fertig programmiert und stellt kein Problem da ich habe massivst Probleme mit zwei Punkten:
1.
Ich bekomme es nicht hin die Datei nach der hexadezimalen Zahlenkombination (0x7FE0,0x0010) zu durchsuchen.
(und wie springe ich dann noch einen long weiter wenn ich vorher mit shorts gearbeitet hab? fseek() evtl.?)
Versucht hatte ich es in der Richtung:
das aber nicht besonders elegant noch funktioniert es wie ich das will
2. die daten dann als short in die matrix einzulesen
Wenn mir jemand nen passenden Denkanstoß geben kann wäre ich sehr verbunden, danke im Voraus.
für mein Studium betrachten wir grade C und wir haben die Aufgabe bekommen in einer Dicom Datei die Bilddaten zu extrahieren.
Für uns interessant im Praktikum sind die Bilddaten, die in diesen Dateien abgespeichert sind. Zunächst kommt der so genannte Header der Datei, der eine
Menge an anderen Informationen enthält (um die wir uns NICHT kümmern) und auch eine variable Größe besitzt. Danach kommt an einer bestimmten Stelle die Information, dass nun die Bilddaten kommen. Diese Information findet sich dadurch, dass man die Daten (als short!) einliest und wenn die hexadezimale Zahlenkombination (0x7FE0,0x0010) gefunden wird, mussen noch vier char-Daten übersprungen werden, dann kommt als long die Anzahl der Bildpunkte und dann beginnen die Bilddaten (nachzulesen im DICOM-Standard). Die Größe der Bilder ist (bei der Computertomographie) 512 x 512 und die Bilddaten sind als short- Variablen gespeichert.
Die Daten werden dann auf verschiedenste Art und Weiße manipuliert aber das ist alles schon fertig programmiert und stellt kein Problem da ich habe massivst Probleme mit zwei Punkten:
1.
Ich bekomme es nicht hin die Datei nach der hexadezimalen Zahlenkombination (0x7FE0,0x0010) zu durchsuchen.
(und wie springe ich dann noch einen long weiter wenn ich vorher mit shorts gearbeitet hab? fseek() evtl.?)
Versucht hatte ich es in der Richtung:
Code:
int main()
{
FILE *fpi,*fpo;
short helpvar;
short fpi = fopen("file_out","r");
if(fpi == NULL)
printf("Cyptic ERROR 404\n");
else
{
while((helpvar=fscanf(fpi))!=EOF)
{
if (helpvar == 0x7FE0)
{
if ((helpvar = fscanf(fpi)) == 0x0010)
}
}
fcloseall();
}
return 0;
}
das aber nicht besonders elegant noch funktioniert es wie ich das will
2. die daten dann als short in die matrix einzulesen
Wenn mir jemand nen passenden Denkanstoß geben kann wäre ich sehr verbunden, danke im Voraus.
Zuletzt bearbeitet: