2011-03-11 8 views
2

DICOM 파일에서 픽셀 데이터를 추출하여 iOS의 이미지 뷰어로 전달할 수있는 방법을 아는 사람이 있습니까?iOS의 DICOM 파일에서 픽셀 데이터를 어떻게 추출합니까?

죄송합니다. 간단한 질문이지만 거대한 수의 웜에 대한 주요 구성 요소 인 것으로 보입니다.

+0

Xcode는 플랫폼이 아니므로 Mac 또는 iOS에서 무엇을 원하십니까? 또한 DCMFramework가 사용자의 요구를 충족시키지 못한다고 가정합니다. http://stackoverflow.com/questions/4786039/viewing-dicom-images-on-ipad? –

+0

나의 특이성에 대해 사과드립니다 .... 이것은 iOS를위한 것입니다. 이전 게시와 관련하여 Osirix는 환상적인 응용 프로그램이지만 중요한 제한 사항이 있습니다. 즉, 내 dicom 이미지 (예 : 전자 메일에서 다운로드)를 볼 수 없기 때문에 pacs 서버에 중점을 둡니다. 현장에서 일한다. 몇 주 동안 DCMframework를 살펴 보았지만 성공하지 못했습니다. 따라서 더 많은 도움이 필요합니다. (나와 맺어 라. .. 이것은 단계적인 학습 곡선이었다!!) – rick

+0

나는 많이 생각했다. 그러나 나는 첫번째로 조사하고 싶었다. 이 질문이 iOS 용임을 나타 내기 위해 질문을 수정했습니다. –

답변

5

iOS에서 GDCM을 사용하고 있습니다. 나는 그것을 열심히 아직 강요하지는 않았지만 지금까지 잘 작동하고 있습니다. 나는 기본적으로 ITK에 대한이 우수 기사에서 iOS에서 실행되는 Xcode 프로젝트를 해킹하는 지침을 따랐습니다.

는 여기에 iOS 용 컴파일하는 데있어 방법은 다음과 같습니다 소스 포지에서

  1. 다운로드 소스 포트를 통해 설치 cmake. 최근 버전의 cmake (2.8.2를 사용 중입니다.)
  2. 소스가 gdcm-2.0.17/폴더에 있으면 해당 레벨에서 다른 디렉토리를 만듭니다 (gdcmbin). cd를 사용하여 해당 디렉토리에 입력하고 ccmake -GXCode ../gdcm-2.0.17/을 터미널 창에 입력하십시오. XCode 프로젝트가 생성됩니다. 이 작업을 수행 할 때 예제 프로그램을 만들거나 공유 라이브러리를 만들지 않았습니다 (iOS에서는 작동하지 않음). 그냥 기본값을 실행하십시오.
  3. 빌드 옵션을 변경하는 방법에 대한 ITK 문서의 지침을 따르십시오 (4 단계 : 7 단계). 당신이 GDCM에 프로젝트의 헤더 검색 경로를 설정하는 경우
  4. 그런 다음 Clint Harris' blog
  5. 에서 우수한 지침을 사용하여 프로젝트에 GDCM를 링크 - 만약 당신이 두 개의 경로를 입력해야합니다 : ㅋ ㅋ /gdcm-2.0.17/Source/** 및 blah/gdcmbin/**. 첫 번째 경로의 '/ Source'가 필요합니다. 그렇지 않으면 아키텍처에 적합하지 않은 헤더가 생성됩니다.
  6. 하나의 결함 (성가 시지만 아직 알아낼 ​​시간을 보지 못했다.) : 시뮬레이터에서 디바이스로 전환 할 때 링크 오류가 발생합니다 (또는 그 반대). 이는 gdcm 프로젝트가 여러 대상에 대해 서로 다른 디렉토리에 출력을 배치하지 않기 때문입니다. 따라서 전환 할 때 gdcm 프로젝트를 깨끗하게 다시 작성하십시오. 나는 그것을 곧 바꿀만큼 빨리 성가 시게 될 것이다 :-).

    NSMutableDictionary * imageDictionary = [[NSMutableDictionary alloc] initWithCapacity:40]; 
    // The output of gdcm::Reader is a gdcm::File 
    gdcm::File &file = reader.GetFile(); 
    
    // the dataset is the the set of element we are interested in: 
    gdcm::DataSet &ds = file.GetDataSet(); 
    const Tag studyInstance(0x0020,0x000d); // Study Instance UID 
    const DataElement &dicomVal = ds.GetDataElement(studyInstance); 
    std::string stringVal(dicomVal.GetByteValue()->GetPointer(), dicomVal.GetByteValue()->GetLength()); 
    NSString *val = [NSString stringWithCString:stringVal.c_str() encoding:[NSString defaultCStringEncoding]]; 
    [imageDictionary setObject:val forKey:@"studyInstanceUID"]; 
    

    (참고 :

다음은 라이브러리를 호출하고 목표 - C 사전에 결과를 넣어 줄 방법의 거친 조각의이는 *에 있습니다.C++과 ObjectiveC를 혼합 한 mm 파일)

0

DICOM 소프트웨어를 찾으려면 의료 이미징 소프트웨어 용 교환소 인 idoimaging.com을보십시오. 플랫폼, 입력 형식, 출력 형식, 언어 등을 선택할 수 있습니다. iOS는 형식으로 나열되어 있지는 않지만 나열된 소프트웨어의 대부분은 소스와 함께 제공되며 라이브러리 형식으로 유용하며 MacOS X에서 사용할 수 있습니다. 예를 들어 DICOM

  • 플랫폼 : 매킨토시
  • 언어 :

    • 입력 형식 : 내가 선택 C

    을 여러 패키지를 발견했다. MacOS와 iOS의 유사점과 이들 중 일부는 소스가 포함 된 교차 플랫폼이라는 사실을 감안할 때 iOS에서 작업하는 사람 중 한 명을 얻는 것은 너무 어렵지 않습니다.

  • 관련 문제