2014-09-05 2 views
0

dicom 파일을 읽고 보려고합니다. 나는 패키지 'oro.dicom'를 설치하고 사용하여 파일 읽을 수 있었다 : R의 dicom 이미지를 볼 수 없습니다

image(t(abdo$img), col=grey(0:64/64), axes=FALSE, xlab="", ylab="") 
Error in t.default(abdo$img) : argument is not a matrix 

구조 명령 쇼

은 다음과 같습니다 : 그러나

library(oro.dicom) 
abdo <- readDICOMFile("image0.dcm") 

extractHeader(abdo$hdr, "Rows") 
[1] 2014 

extractHeader(abdo$hdr, "Columns") 
[1] 2014 

extractHeader(abdo$hdr, "Manufacturer", numeric=FALSE) 
[1] "...IT Radiology" 

을, 나는 이미지를 볼 수 아니다

str(abdo$img) 
int [1:2014, 1:2014, 1:3] 110 51 99 113 52 101 111 53 102 110 ... 

다음 작품과 그래픽 상자가 표시하지만, 어떤 엑스레이 이미지없이 단지 빈 상자입니다 :

image(t(abdo$img[[1]]), col=grey(0:64/64), axes=FALSE, xlab="", ylab="") 

왜 작동하지 않으며 어떻게 해결할 수 있습니까? 당신의 도움을 주셔서 감사합니다.

편집 : CR-MONO1-10-chest.dcm (http://www.barre.nom.fr/medical/samples/files/CR-MONO1-10-chest.gz) 나는 오류를 다음과 같은 얻을 그것을 읽는 동안에도 : 다음

rasterImage(as.raster(matrix(abdo[[1:3]]))) 
Error in rasterImage(as.raster(matrix(abdo[[1:3]]))) : 
    argument "xleft" is missing, with no default 

: 다음 rasterImage와

abdo <- readDICOMFile("CR-MONO1-10-chest.dcm") 
Error in readDICOMFile("CR-MONO1-10-chest.dcm") : DICM != DICM 

오류입니다 더 가까이 있지만 여전히 작동하지 않습니다.

>  rasterImage(abdo$img, 100, 400, 150, 450) 
Error in rgb(t(x[, , 1]), t(x[, , 2]), t(x[, , 3]), maxColorValue = max) : 
    color intensity -30, not in [0,1] 

>  rasterImage(abdo$img, 100, 400, 150, 450, interpolate=F) 
Error in rgb(t(x[, , 1]), t(x[, , 2]), t(x[, , 3]), maxColorValue = max) : 
    color intensity -30, not in [0,1] 
> 
+1

3D 배열이있는 것처럼 보이고'image()'는 2D 배열을 필요로합니다. 마치 3 차원이 RGB 레이어에 대한 데이터를 별도로 가지고있는 것과 같습니다. 'rgb'로 3 차원을 붕괴시킬 수 있습니다. 그러나 이것은 [재생 가능한 예제] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 제공하면 도움이 될 것입니다. 내 컴퓨터에 많은'dcm' 파일이 없으며'readDICOMFile'을 사용하고있는 라이브러리도 확실하지 않습니다. – MrFlick

+0

@MrFlick이 맞습니다. 대신'rasterImage'를 사용해보십시오. 이미지 배열의 세 레이어 모두를 행복하게 잡아낼 수 있습니다. –

+0

관심을 가져 주셔서 감사합니다. 간단한 작은 dicom 이미지 (흉부 X 선)는 http://www.barre.nom.fr/medical/samples/files/CR-MONO1-10-chest.gz에서 확인할 수 있습니다. 또한이 이미지를 테스트하고이 이미지와 함께 오류를 게시합니다. 코드는 위에 게시 한 모든 것입니다. 동일한 이미지로 재현 할 수있는 예제가 될 것입니다. – rnso

답변

1

이 답변은 t 그는 오픈 소스 파일 CR-MONO1-10-chest.dcm (http://www.barre.nom.fr/medical/samples/files/CR-MONO1-10-chest.gz)입니다. 이 파일은 유효한 DICOM 파일이 아닙니다. DICOM 표준 파트 10의 7.1 절 (http://dicom.nema.org에서 사용 가능)에 따르면 (a) 길이가 128 바이트 인 파일 샘플과 (b) 4 바이트 DICOM 접두어 "DICM"이 있어야합니다. CR-MONO1-10-chest.dcm은 첫 번째 바이트 쌍에서 정보를 제공하기 시작합니다.

skipFirst128 = TRUEreadDICOMFile()에 추가했으며 다음 릴리스 oro.dicom에서 사용할 수 있습니다. 따라서, 하나의 파일이 거의 20 년 전에 만들어진 있습니다

abdo <- readDICOMFile("CR-MONO1-10-chest.dcm", skipFirst128=FALSE, DICM=FALSE) 
image(t(abdo$img), col=grey(0:64/64), axes=FALSE, xlab="", ylab="") 

을 사용하여 파일을 읽을 수, 나는 최근 과거에 생성 된 파일이 문제가되지 않습니다 바랍니다. 이 오류를 제게 알려 주셔서 감사합니다. 나는 항상 그것을 향상시키기 위해 내 코드를 깨뜨리는 DICOM 파일을 찾고있다.

+0

답장을 보내 주셔서 감사합니다. 더 자세한 정보가있는 링크를 참고하십시오 : http://stackoverflow.com/questions/25819617/what-could-be-the-reason-for-bad- dicom-image-plot – rnso

+0

예, stackoverflow의 두 가지 추가 질문에 대해 알고 있습니다. 앞으로 며칠 이내에 작업을 계획하고 있습니다. –

관련 문제