나는 DICOM 이미지를 읽을 dcmtk 사용하고 있는데 나는 새로운 샘플의 속성을 다음 있습니다 : dcmtk를 사용할 때 2^15에서 dicom 이미지의 픽셀 값을 빼야하는 이유는 무엇입니까?
(0028,0004) Photometric Interpretation: MONOCHROME2
(0028,0010) Rows: 512
(0028,0011) Columns: 512
(0028,0030) Pixel Spacing: 0.4688\0.4688
(0028,0100) Bits Allocated: 16
(0028,0101) Bits Stored: 16
(0028,0102) High Bit: 15
(0028,0103) Pixel Representation: 1
(0028,0106) Smallest Image Pixel Value: 0
(0028,0107) Largest Image Pixel Value: 2732
(0028,1050) Window Center: 1366
(0028,1051) Window Width: 2732
나는 int16_t 데이터를 읽기 위해 getOutputData (16)를 사용합니다. 값이 -1 * (2^16) 근처에서 음수이고 2^15로 값을 뺄 때 모든 것이 정상적으로 보이고 이미지를 볼 수 있기 때문에 놀랍습니다! :-(
지금 나는 두 가지 질문이 있습니다?!
- 가 왜 값 2^15을 빼야한다을하고 확인을가는 이미지에는 padding value 사용할 수 없습니다 getOutputData의 문서에서
- , 그건 말하기 about 렌더링 된 픽셀 데이터는 항상 부호가 없습니다. (0028,0103) 속성이 내게 말하기 때문에 이미지 데이터에 서명 할 때 특별히 의미하는 것은 무엇입니까?이 방법이 적절하지 않으면 실제 데이터를 얻을 수 있습니까? dcmtk 데이터?
'getOutputData'는 [문서] (http://support.dcmtk.org/docs/classDicomImage.html#46da8f4e40464d2659938b2b0bd10519)에 따라'void *'를 반환하며 (사용자가 직접 언급 한 것처럼) 출력 데이터는 항상 서명되지 않습니다. . 그래서 대신 출력 데이터를'uint16'으로 변환해야합니까? –
Paolo가 제안한대로 _Rescale Slope_ (0028,1053) 및 _Rescale Intercept_ (0028,1052)에 대한 값 (있는 경우)을 포함 할 수 있습니까? – jap1968