2012-09-17 1 views
1

J'ai un problème lors de la lecture du fichier DICOM. Ceci est le format 1.2.840.10008.1.2.4.70 (processus 14 avec une prédiction de premier ordre (Sélection valeur 1). Je vous écris mon propre logiciel.Lecture DICOM 1.2.840.10008.1.2.4.70

Voici résultat de mon travail.

CLICK

Je vous donne aussi un .dcm file.

Que peut-être le problème? Seulement Radiant Dicom Viewer ouvrir corectly (je n'ai pas trouvé un logiciel de travail avec le code source) . avoir quelqu'un tout tutoriel à ce sujet? Tous code de travail?

Je serai très reconnaissant! Merci pour votre aide.


Je vous montrer comment je le faire:

//I have: 
numCOL= imageWidth; 
numROW= imageHeight; 

dwCurrentBufferLength;//-> where I in file 

//and other stuff... 

//First i decode first row: 
//[0][0] 

DecodeFirstRow(curRowBuf,dwCurrentBufferLength); 

//I calculate difrences 
HuffDecode (table , &val, dwCurrentBufferLength); 

//and extend 
HuffExtend(extend, val); 

curRowBuf[0][curComp]=extend+(1<<(Pr-Pt-1)); 

//[1-n][0] 
//... huff stuff 
curRowBuf[col][curComp]=extend+curRowBuf[col-1][curComp]; 

//Then i put row to the vector: 
for (col = 0; col < numCol; col++) 
{  
v=RowBuf[col][0]<<point_transform_parameter;      
m_vOutputBuf.push_back(v); 
} 

//Rest of columns 
//[0][m] 
curRowBuf[0][curComp]=extend+prevRowBuf[0][curComp];  


predictor = left =curRowBuf[leftcol][curComp]; 
//[1-n][m] 
curRowBuf[col][curComp]=extend+predictor; 
//and also put it to vector ^^ 

Où je dois Sub 1000 ??

+0

ce n'est pas clair de ce qui ne va pas, un fichier dicom que vous avez fait ou le programme que vous avez écrit pour le lire? – CharlesB

+0

Il programme faux. Dicom File est corect – user1677686

Répondre

2

Très probablement, vous n'avez pas comptabilisé le Rescale Intercept, l'étiquette (0028,1052) lors du calcul de vos valeurs HU. Selon le fichier DICOM, l'interception est -1000.

Pour obtenir les valeurs HU appropriées de votre image, utilisez cette formule:

HU = rescale_slope * pixel_value + rescale_intercept 

Rescale Intercept est ainsi obtenu de l'étiquette (0028,1052) et Rescale pente de tag (0028, 1053).

+0

Merci pour la réponse, mais où il doit être sous? J'ai une date limite aujourd'hui: ( – user1677686

+1

Il est très difficile de dire à partir du code que vous avez fourni, mais ce sont les valeurs que _go into_ la compression JPEG qui doit être modifié. étendez votre application plus loin, je recommande fortement de commencer à vous fier à une boîte à outils DICOM standard, par exemple la boîte à outils DCMTK [OFFIS DCMTK] (http://dicom.offis.de/dcmtk.php.en). –

0

Voici ce que je vois à l'aide gdcmviewer:

$ gdcmviewer 3DSlice1.dcm

enter image description here

GDCM est open source, vous pouvez l'étudier.