#define vtkRenderingCore_AUTOINIT 3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL2)
#include "D:\maize_CT\Read_filter\Imgproc.h"
#include "vtkBMPReader.h"
#include "vtkSmartPointer.h"
#include <vtkImageDilateErode3D.h>
#include <vtkImageActor.h>
#include <vtkImageMapper3D.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkNamedColors.h>
#include <vtkInteractorStyleImage.h>
#include <vtkMarchingCubes.h>
#include <vtkImageAppend.h>
#include <vtkImageViewer2.h>
#include <vtkMarchingCubes.h>
#include <vtkStripper.h>
#include <vtkPolyDataMapper.h>
#include <vtkimageProperty.h>
#include <vtkOutlineFilter.h>
#include <vtkCamera.h>
#include <vtkStringArray.h>
#include <vtkImageToPolyDataFilter.h>
#include <vtkDataSetMapper.h>
int main() {
vtkNew<vtkNamedColors> colors;
//生成文件序列组名
vtkSmartPointer <vtkStringArray> fileArray =
vtkSmartPointer <vtkStringArray>::New();
char fileName[128];
for (int i = 0; i < FRAMES; i++)
{
sprintf(fileName, "E:/Juno_segmentation/00004641/Maxcontour/ct%04d.bmp", i);
std::string fileStr(fileName);
fileArray->InsertNextValue(fileStr);
}
//读取序列图
vtkSmartPointer<vtkBMPReader>Reader = vtkSmartPointer<vtkBMPReader>::New();
Reader->SetFileNames(fileArray);
Reader->Update();
//形态学开操作
vtkNew<vtkImageDilateErode3D> dilateErode;
dilateErode->SetInputConnection(Reader->GetOutputPort());
dilateErode->SetDilateValue(0);
dilateErode->SetErodeValue(255);
dilateErode->SetKernelSize(15, 15, 3);
dilateErode->ReleaseDataFlagOff();
vtkNew<vtkImageActor> originalActor;
originalActor->GetMapper()->SetInputConnection(Reader->GetOutputPort());
vtkNew<vtkImageActor> openCloseActor;
openCloseActor->GetMapper()->SetInputConnection(dilateErode->GetOutputPort());
// Define viewport ranges
// (xmin, ymin, xmax, ymax)
double originalViewport[4] = { 0.0, 0.0, 0.5, 1.0 };
double openCloseViewport[4] = { 0.5, 0.0, 1.0, 1.0 };
// Setup renderers
vtkNew<vtkRenderer> originalRenderer;
originalRenderer->SetViewport(originalViewport);
originalRenderer->AddActor(originalActor);
originalRenderer->ResetCamera();
originalRenderer->SetBackground(colors->GetColor3d("Sienna").GetData());
vtkNew<vtkRenderer> dilateErodeRenderer;
dilateErodeRenderer->SetViewport(openCloseViewport);
dilateErodeRenderer->AddActor(openCloseActor);
dilateErodeRenderer->ResetCamera();
dilateErodeRenderer->SetBackground(colors->GetColor3d("RoyalBlue").GetData());
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->SetSize(600, 300);
renderWindow->AddRenderer(originalRenderer);
renderWindow->AddRenderer(dilateErodeRenderer);
renderWindow->SetWindowName("ImageDilateErode3D");
vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
vtkNew<vtkInteractorStyleImage> style;
renderWindowInteractor->SetInteractorStyle(style);
renderWindowInteractor->SetRenderWindow(renderWindow);
renderWindow->Render();
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
我的运行结果视场一片黑,啥也看不见