2013-08-29 2 views
0

내가 이미지 뷰어를 사용하지 않고 DICOM 이미지를 읽기 위해 노력하고 그리고 난이 나에게 오류를주고, 그것을 실행하려고 할 때 내가 .. VtkGdmReader 건너 온 :읽기 DICOM 이미지

코드 =>vtkGdmReader 예를

오류 C2039 : 'setInput에는': 'vtkTexture'

오류 C2039의 구성원이 아닌 'setInput에'있다 없다의 멤버 'vtkPolyDataMapper'

하나는 내가 왜이 문제에 직면하고 말해 줄 수주십시오 ,이 오류는 vtk 버전과 관련이 있습니까? ? 그렇다면 어떻게해야할까요?

이 날이 문제를 해결 도와주세요 ..

+1

VTK-6에서 SetInput이 제거 된 것 같습니다. http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Replacement_of_SetInput – drescherjm

+0

@ user2268891 : 저는 drescherjm이 옳다고 생각합니다. 나는 VTK 5.10.1을 사용하고 vtkPolyDataMapper-> SetInput()을 문제없이 사용할 수있다. (Intellisense는 스스로 인식한다.) 아마도이 예제를 그대로 작동 시키려면 VTK 5.x.x로 되돌아 가야합니다. –

답변

0

으로는 코멘트에이 오류가 VTK 버전과 관련이있다. SetInput() was removed in VTK 6.

VTK 5에서 작업하거나 코드를 업데이트 할 수 있습니다. 업데이트하기로 결정한 경우 SetInput()SetInputData() 또는 SetInputConnection()으로 바꾸면이 오류가 수정됩니다. 필터가 파이프 라인을 통과하게하려면 SetInputConnection()을 사용해야합니다.
VTKtexture->SetInput(ima);
VTKplaneMapper->SetInput(VTKplane->GetOutput());
행 : 다음에
VTKtexture->SetInputConnection(reader->GetOutputPort());
VTKplaneMapper->SetInputConnection(VTKplane->GetOutputPort());

하면, 사용자가 제공 한 코드의 다음 라인을 교체해야 한 오류 수정의 예로서

두 번째 수정 ( VTKplaneMapper), 우리는 방금 GetOutput()GetOutputPort()으로 변경했으며 처음에는 ( VTKtexture)을 letely는 인수를 SetInputConnection()에게 넘겼습니다. 이는 데이터 객체 (예 : ima)가 더 이상 파이프 라인 객체 (예 : 알고리즘 및 경영진)에 종속되지 않기 때문에 발생합니다. 이 경우 데이터 객체를 생성 한 알고리즘을 인수로 제공합니다. 찾는 경우 vtkImageData* ima = reader->GetOutput(); 행을 볼 수 있으며 GetOutput()GetOutputPort()으로 바꿔야합니다. 두 번째 수정에서 수행 한 것과 같습니다.

이 오류 및 실행할 수있는 다른 오류에 대한 자세한 내용은 VTK Wiki의 VTK 6 Migration pages (및 guide)을 살펴 보는 것이 좋습니다.

관련 문제