/********************************************************************** 文件名: 5.5_MeanFilterExample.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 #include #include #include //测试图像:../data/lena-gray.jpg int main(int argc, char* argv[]) { if (argc < 2) { std::cout< reader = vtkSmartPointer::New(); reader->SetFileName(argv[1]); reader->Update(); vtkSmartPointer originalCastFilter = vtkSmartPointer::New(); originalCastFilter->SetInputConnection(reader->GetOutputPort()); originalCastFilter->SetOutputScalarTypeToFloat(); originalCastFilter->Update(); vtkSmartPointer convolveFilter = vtkSmartPointer::New(); convolveFilter->SetInputConnection(originalCastFilter->GetOutputPort()); double kernel[25] = {0.04,0.04,0.04,0.04,0.04, 0.04,0.04,0.04,0.04,0.04, 0.04,0.04,0.04,0.04,0.04, 0.04,0.04,0.04,0.04,0.04, 0.04,0.04,0.04,0.04,0.04 }; convolveFilter->SetKernel5x5(kernel); convolveFilter->Update(); vtkSmartPointer convCastFilter = vtkSmartPointer::New(); convCastFilter->SetInput(convolveFilter->GetOutput()); convCastFilter->SetOutputScalarTypeToUnsignedChar(); convCastFilter->Update(); vtkSmartPointer originalActor = vtkSmartPointer::New(); originalActor->SetInput(reader->GetOutput()); vtkSmartPointer convolvedActor = vtkSmartPointer::New(); convolvedActor->SetInput(convCastFilter->GetOutput()); double leftViewport[4] = {0.0, 0.0, 0.5, 1.0}; double rightViewport[4] = {0.5, 0.0, 1.0, 1.0}; vtkSmartPointer originalRenderer = vtkSmartPointer::New(); originalRenderer->SetViewport(leftViewport); originalRenderer->AddActor(originalActor); originalRenderer->SetBackground(1.0, 1.0, 1.0); originalRenderer->ResetCamera(); vtkSmartPointer convolvedRenderer = vtkSmartPointer::New(); convolvedRenderer->SetViewport(rightViewport); convolvedRenderer->AddActor(convolvedActor); convolvedRenderer->SetBackground(1.0, 1.0, 1.0); convolvedRenderer->ResetCamera(); vtkSmartPointer renderWindow = vtkSmartPointer::New();; renderWindow->AddRenderer(originalRenderer); renderWindow->AddRenderer(convolvedRenderer); renderWindow->SetSize(640, 320); renderWindow->Render(); renderWindow->SetWindowName("MeanFilterExample"); vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New(); vtkSmartPointer style = vtkSmartPointer::New(); renderWindowInteractor->SetInteractorStyle(style); renderWindowInteractor->SetRenderWindow(renderWindow); renderWindowInteractor->Initialize(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }