为切面叠加颜色

 先上代码:

onDisplayColorMprPixel(vtkImageViewer2* imageViewer, vtkImagePlaneWidget* imagePlane,int slicerIndex)
{
 
	vtkSmartPointer<vtkImageViewer2> viewerLayer = vtkSmartPointer<vtkImageViewer2>::New();
	
	//viewerLayer->SetRenderWindow(imageViewer->GetRenderWindow());//加上以后就没有叠加的效果了
	viewerLayer->SetInputData(m_pHessianImageData);
	
	if (m_nIndex == 1)
		viewerLayer->SetSliceOrientationToXY();
	else if (m_nIndex == 2)
		viewerLayer->SetSliceOrientationToYZ();
	else if (m_nIndex == 3)
		viewerLayer->SetSliceOrientationToXZ();
	viewerLayer->GetRenderWindow()->SetShowWindow(false);
	viewerLayer->SetSlice(slicerIndex);//到此出为止会出现弹窗
	viewerLayer->GetImageActor()->SetInterpolate(false);
	viewerLayer->GetImageActor()->GetProperty()->SetLookupTable(pColorTable);
	viewerLayer->GetImageActor()->SetOpacity(0.5); 
	viewerLayer->GetImageActor()->GetProperty()->SetDiffuse(0.0);
	viewerLayer->GetImageActor()->SetPickable(false);
	vtkImageActor* actor = viewerLayer->GetImageActor();
	vtkRenderer* renderer = imageViewer->GetRenderer();
	renderer->AddActor(actor);
	renderer->AddActor(imageViewer->GetImageActor());
	vtkRenderWindow* rw = imageViewer->GetRenderWindow();
	rw->AddRenderer(renderer);
	rw->Render();
 
 
}

 imageViewer是原本显示切片的视图,viewerLayer是叠加在原切面上的视图。 slicerIndex是第几个切面, pColorTable是颜色表。

效果:

明显在白色上面叠加了红色。

问题:总是会创建新窗口,然后闪现一下,如果把上面的注释放开,倒是不会出现新窗口,但是又没有叠加效果,只显示红色标签。不知道大家有什么建议。看了网上的一些东西,还是不一样,我这个要不停滚动,不停显示每个切片。而且要显示叠加效果。有红有白。

大家有没有解决办法?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值