不使用vtkImageviewer2的情况下,如何设置ColorLevel 以及ColorWindow

由于vtkImageviewer2是一个fast and dirty class,所以在循环显示中会出现内存泄露的问题。


使用vtkImageActor、vtkRender、vtkRenderWindow、vtkRenderWindowInteractor、vtkInteractorStyleImage 配合显示图像是官方推荐的显示方式。


因而唯有通过vtkImageMapToWindowLevelColors 来设置ColorLevel 以及ColorWindow,然后将配置后的图像传递给ImageActor

vtkImageMapToWindowLevelColors *windowLevel = vtkImageMapToWindowLevelColors::New();
windowLevel->SetInput(MRISlice);
windowLevel->SetLevel(100);

vtkSmartPointer<vtkImageActor> actor_MR = vtkSmartPointer<vtkImageActor>::New();
actor_MR->SetInput(windowLevel->GetOutput());


vtkSmartPointer<vtkRenderer> render_MR = vtkSmartPointer<vtkRenderer>::New();

render_MR->AddActor(actor_MR);


renderwindow等设置与通常的一致。


另外一个方法就是通过vtkImageMapper来调用SetColorLevel  SetColorWindow设置窗位 窗宽



坑爹了,上两个月测试发现vtkImageviewer2与VtkImageFlip在循环显示中出现内存泄露的问题,但是今天无意中看了篇讨论帖子,发现是没有显式释放数据的原因:viewer2->GetRenderer()->RemoveViewProp(viewer2->GetImageActor());


不知道vtkImageFlip会不会也是因为类似的原因导致的泄露问题。 后面如有结果会持续更新!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值