当前位置: 首页 > 网络知识

VTK 实例40:均值滤波(图像光滑)

时间:2026-01-29 09:25:18

1 #include "vtkAutoInit.h" 2 VTK_MODULE_INIT(vtkRenderingOpenGL2); 3 VTK_MODULE_INIT(vtkInteractionStyle); 4 5 #include <vtkSmartPointer.h> 6 #include <vtkImageData.h> 7 #include <vtkImageConvolve.h> 8 #include <vtkImageMandelbrotSource.h> 9 #include <vtkRenderWindoh> 10 #include <vtkRenderWindowInteractor.h> 11 #include <vtkInteractorStyleImage.h> 12 #include <vtkRenderer.h> 13 #include <vtkImageActor.h> 14 #include <vtkImageCast.h> 15 #include <vtkJPEGReader.h> 16 #include <vtkImageShiftScale.h> 17 18 //测试图像:../data/lenagray.jpg 19 int main(int argc, char* argv[]) 20 ; 41 convolveFilter>SetKernel5x5(kernel); 42 convolveFilter>Update(); 43 44 vtkSmartPointer<vtkImageCast> convCastFilter = 45 vtkSmartPointer<vtkImageCast>::New(); 46 convCastFilter>SetInputData(convolveFilter>GetOutput()); 47 convCastFilter>SetOutputScalarTypeToUnsignedChar(); 48 convCastFilter>Update(); 49 50 vtkSmartPointer<vtkImageActor> originalActor = 51 vtkSmartPointer<vtkImageActor>::New(); 52 originalActor>SetInputData(reader>GetOutput()); 53 54 vtkSmartPointer<vtkImageActor> convolvedActor = 55 vtkSmartPointer<vtkImageActor>::New(); 56 convolvedActor>SetInputData(convCastFilter>GetOutput()); 57 58 double leftViewport[4] = ; 59 double rightViewport[4] = ; 60 61 vtkSmartPointer<vtkRenderer> originalRenderer = 62 vtkSmartPointer<vtkRenderer>::New(); originalRenderer>SetViewport(leftViewport); 64 originalRenderer>AddActor(originalActor); 65 originalRenderer>SetBackground(1.0, 1.0, 1.0); 66 originalRenderer>ResetCamera(); 67 68 vtkSmartPointer<vtkRenderer> convolvedRenderer = 69 vtkSmartPointer<vtkRenderer>::New(); 70 convolvedRenderer>SetViewport(rightViewport); 71 convolvedRenderer>AddActor(convolvedActor); 72 convolvedRenderer>SetBackground(1.0, 1.0, 1.0); 73 convolvedRenderer>ResetCamera(); 74 75 vtkSmartPointer<vtkRenderWindow> renderWindow = 76 vtkSmartPointer<vtkRenderWindow>::New();; 77 renderWindow>AddRenderer(originalRenderer); 78 renderWindow>AddRenderer(convolvedRenderer); 79 renderWindow>SetSize(640, 320); 80 renderWindow>Render(); 81 renderWindow>SetWindowName("MeanFilterExample"); 82 83 vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = 84 vtkSmartPointer<vtkRenderWindowInteractor>::New(); 85 vtkSmartPointer<vtkInteractorStyleImage> style = 86 vtkSmartPointer<vtkInteractorStyleImage>::New(); 87 88 renderWindowInteractor>SetInteractorStyle(style); 89 renderWindowInteractor>SetRenderWindow(renderWindow); 90 renderWindowInteractor>Initialize(); 91 renderWindowInteractor>Start(); 92 93 return EXIT_SUCCESS; 94 }



上一篇:VTK 实例49:计算三角网络模型面积、体积
下一篇:VTK 实例50:计算三角网络模型的测地距离
VTK
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素