VTK 图像融合

效果图

 

 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New();
reader->SetFileName("d:/h1.jpg");
reader->Update();
 
vtkSmartPointer<vtkImageCanvasSource2D> back = vtkSmartPointer<vtkImageCanvasSource2D>::New();
back->SetNumberOfScalarComponents(1);
back->SetScalarTypeToUnsignedChar();
back->SetExtent(0, 512, 0, 512, 0, 0);
back->SetDrawColor(0.0);
back->FillBox(0, 512, 0, 512);
back->SetDrawColor(255);
back->FillBox(100, 400, 100, 400);
back->Update();
 
vtkSmartPointer<vtkImageBlend> blend = vtkSmartPointer<vtkImageBlend>::New();
blend->AddInputData((vtkDataObject*)reader->GetOutput());
blend->AddInputData((vtkDataObject*)back->GetOutput());
blend->SetOpacity(0, 0.7);
blend->SetOpacity(1, 0.3);
blend->Update();
 
double leftview[4] = {0,0, 0.33,1};
double midview[4] = {0.33,0, 0.66,1};
double rightview[4] = {0.66,0, 1.0,1};
 
vtkSmartPointer<vtkImageActor> actor1 = vtkSmartPointer<vtkImageActor>::New();
actor1->GetMapper()->SetInputConnection(reader->GetOutputPort());
pRenderer->AddActor(actor1);
pRenderer->SetViewport(leftview);
pRenderer->ResetCamera();
pRenderer->SetBackground(1,0,0);
 
vtkSmartPointer<vtkImageActor> actor2 = vtkSmartPointer<vtkImageActor>::New();
actor2->GetMapper()->SetInputConnection(back->GetOutputPort());
 
vtkSmartPointer<vtkRenderer> render2 = vtkSmartPointer<vtkRenderer>::New();
render2->SetViewport(midview);
render2->AddActor(actor2);
render2->ResetCamera();
render2->SetBackground(0,1,0);
 
vtkSmartPointer<vtkImageActor> actor3 = vtkSmartPointer<vtkImageActor>::New();
actor3->GetMapper()->SetInputConnection(blend->GetOutputPort());
vtkSmartPointer<vtkRenderer> render3 = vtkSmartPointer<vtkRenderer>::New();
render3->SetViewport(rightview);
render3->AddActor(actor3);
render3->ResetCamera();
render3->SetBackground(0,0,1);
 
 
pRenderWindow->AddRenderer(pRenderer);
pRenderWindow->AddRenderer(render2);
pRenderWindow->AddRenderer(render3);

  

posted @   larkin-cn  阅读(145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示