如何截取VTK中window的场景

原创 2016年06月01日 09:32:29

vtk的vtkRenderWindowInteractor中的Initialize函数初始化了可交互的窗口,但是实际工程中,往往需要把窗口拿出来在别的页面上显示,如存为png图片等等。本文主要介绍如何截取当前窗口的画面。

//renWin:当前活动窗口;
//pdata:截图后返回的数据指针,RGBA,32位,存储格式为RGBARGBA....
//maxlen: 防止pdata开辟的空间不够
bool GetOutput(vtkRenderWindow *renWin,unsigned char* pdata, int maxlen)
{
    int w = renWin->GetSize()[0];
    int h = renWin->GetSize()[1];
    if (maxlen<w*h * 4)
        return false;
    vtkSmartPointer<vtkUnsignedCharArray> pixels = vtkSmartPointer<vtkUnsignedCharArray>::New();
    pixels->SetArray(pdata, w*h * 4, 1);
    renWin->GetRGBACharPixelData(0, 0, h - 1, w - 1, 1, pixels);
    return true;
}

通过上述代码可以截取所需窗口的当前场景,除此方式外,也可以存为png格式只需调用vtk的png类即可。

相关文章推荐

VTK实现图片输出

VTK实现图片输出比较简单,有如下两个步骤:1.将VTK窗口内容转换为图片数据。 vtkWin32OpenGLRenderWindow window = new vtkWin32OpenGLRende...

VTK窗口常用快捷键

下面的窗口快捷键英文描述,是在vtk源码vtkInteractorStyle 类中找到的,描述的非常详细,在应用中也非常实用。还是保持原滋原味的英文 ,大家只要在平时稍加注意就能运用熟练!.NAME ...

vtk实战(四十五)——写入png格式

#include #include #include #include #include int main() { std::string outputFilename; ...

VTK修炼之道20:图像基本操作_图像类型转换

1.vtkImageCast 图像数据类型转换在数字图像处理中会被频繁地用到。一些常用到的图像算子(例如梯度算子)在计算时出于精度的考虑,会将结果存储为float或者double类型。但是在...

VTK修炼之道45:图形进阶_vtkPolyData属性数据

1.从图形着色说起 前一个实验显示结果中的图像是白色的,而图形颜色与vtkPolyData属性数据息息相关。由于并未指定任何颜色和属性数据,因此在显示时默认以白色显示。 属性数据包括点属性...

vtk三维场景基本要素

1. 灯光 VTK中用 vtkLight 代表现实场景中的灯光。 vtkLight 分为聚光灯和方向灯。聚光灯为点光源,方向灯为平行光源。 默认地,vtkLight的实例是平行光源。即,...

vtk显示属性、窗口以及交互设置

在上篇简单的cone模型显示的基础上,本篇blog继续讲解与模型显示属性、窗口显示以及交互方式相关的例子。 1. 模型显示属性设置 通过给actor设置颜色来改变模型的颜色显示,通过pro...

基于VTK的室外场景三维重建

  • 2012年04月19日 23:55
  • 404KB
  • 下载

VTK修炼之道8_三维场景基本要素:相机

1.VTK中相机原理及控制属性 观众的眼睛就好比三维渲染场景中的相机,VTK则是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面,如屏幕、图像...

VTK修炼之道7_三维场景基本要素:光照

1.VTK中的光照长得什么样? 剧场里有各式各样的灯光,三维渲染场景中也一样,可以有多个光照存在。光照和相机是三维渲染场景必备的因素,如果没有指定,vtkRenderer会自动地创建默认的光...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何截取VTK中window的场景
举报原因:
原因补充:

(最多只允许输入30个字)