/********************************************************************** 文件名: 5.3_ImageExtractComponentsExample.cpp Copyright (c) 张晓东, 罗火灵. All rights reserved. 更多信息请访问: http://www.vtkchina.org (VTK中国) http://blog.csdn.net/www_doling_net (东灵工作室) **********************************************************************/ #include #include #include #include #include #include #include #include #include //测试图像:../data/lena.bmp int main(int argc, char* argv[]) { if (argc < 2) { std::cout< reader = vtkSmartPointer::New(); reader->SetFileName (argv[1]); vtkSmartPointer extractRedFilter = vtkSmartPointer::New(); extractRedFilter->SetInputConnection(reader->GetOutputPort()); extractRedFilter->SetComponents(0); extractRedFilter->Update(); vtkSmartPointer extractGreenFilter = vtkSmartPointer::New(); extractGreenFilter->SetInputConnection(reader->GetOutputPort()); extractGreenFilter->SetComponents(1); extractGreenFilter->Update(); vtkSmartPointer extractBlueFilter = vtkSmartPointer::New(); extractBlueFilter->SetInputConnection(reader->GetOutputPort()); extractBlueFilter->SetComponents(2); extractBlueFilter->Update(); // Create actors vtkSmartPointer inputActor = vtkSmartPointer::New(); inputActor->SetInput(reader->GetOutput()); vtkSmartPointer redActor = vtkSmartPointer::New(); redActor->SetInput(extractRedFilter->GetOutput()); vtkSmartPointer greenActor = vtkSmartPointer::New(); greenActor->SetInput(extractGreenFilter->GetOutput()); vtkSmartPointer blueActor = vtkSmartPointer::New(); blueActor->SetInput(extractBlueFilter->GetOutput()); double inputViewport[4] = {0.0, 0.0, 0.25, 1.0}; double redViewport[4] = {0.25, 0.0, 0.5, 1.0}; double greenViewport[4] = {0.5, 0.0, 0.75, 1.0}; double blueViewport[4] = {0.75, 0.0, 1.0, 1.0}; vtkSmartPointer inputRenderer = vtkSmartPointer::New(); inputRenderer->SetViewport(inputViewport); inputRenderer->AddActor(inputActor); inputRenderer->ResetCamera(); inputRenderer->SetBackground(1.0, 1.0, 1.0); vtkSmartPointer redRenderer = vtkSmartPointer::New(); redRenderer->SetViewport(redViewport); redRenderer->AddActor(redActor); redRenderer->ResetCamera(); redRenderer->SetBackground(1.0, 1.0, 1.0); vtkSmartPointer greenRenderer = vtkSmartPointer::New(); greenRenderer->SetViewport(greenViewport); greenRenderer->AddActor(greenActor); greenRenderer->ResetCamera(); greenRenderer->SetBackground(1.0, 1.0, 1.0); vtkSmartPointer blueRenderer = vtkSmartPointer::New(); blueRenderer->SetViewport(blueViewport); blueRenderer->AddActor(blueActor); blueRenderer->ResetCamera(); blueRenderer->SetBackground(1.0, 1.0, 1.0); vtkSmartPointer renderWindow = vtkSmartPointer::New(); renderWindow->AddRenderer(inputRenderer); renderWindow->AddRenderer(redRenderer); renderWindow->AddRenderer(greenRenderer); renderWindow->AddRenderer(blueRenderer); renderWindow->SetSize(1200, 300); renderWindow->Render(); renderWindow->SetWindowName("ImageExtractComponentsExample"); vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New(); vtkSmartPointer style = vtkSmartPointer::New(); renderWindowInteractor->SetInteractorStyle(style); renderWindowInteractor->SetRenderWindow(renderWindow); renderWindowInteractor->Initialize(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }