在Ubuntu Server上使用vtk处理体数据,直接得到渲染结果图片避免显示窗口
概述
需要调用vtk对体数据进行渲染处理,处理结果直接存为图片而不通过窗口显示。
直接使用vtkRenderWindow加上vtkWindowToImageFilter类写入,在调用渲染的过程中会出现窗口闪烁。
最简单的方式为在调用vtkRenderwindow->Render()时,首先设置渲染窗口为off-screen渲染,调用函数OffScreenRenderingOn(),调用后窗口不会出现。
如果使用桌面系统(windows或Ubuntu desktop等),创建的窗口可以在内存中不显示,此问题可以解决(效率不确定)。但使用Ubuntu server调用时会出现以下错误:
bad x server connection
基于版本:
- Ubuntu Server 16.04.2 LTS
- vtk 7.1.1
- mesa 17.2.2
- zlib 1.2.11
思路
vtk off-screen渲染需要调用x-server的渲染或mesa的渲染接口,UbuntuServer默认没有安装x-server,因此需要使用mesa中的osmesa(offscreen mesa)渲染。
需要安装mesa的off-screen渲染支持,然后重新编译vtk为直接支持off-screen的版本。(两处编译均有坑)
具体步骤
安装osmesa
- 安装gcc编译器(Ubuntu Server默认没有安装,Ubuntu desktop默认已经安装)
sudo apt-get install build-essential
- 安装zlib,安装时存在的依赖。官网下载安装
./configure
make
make install
- 安装osmesa
官方给出的安装选项为
configure --enable-osmesa --disable-driglx-direct --disable-dri --with-gallium-drivers=swrast
但是--disable-dri选项会出错,实际运行如下
configure --enable-osmesa --disable-driglx-direct --with-gallium-drivers=swrast
此处会出现成吨未知包(Ubuntu Server中,Ubuntu desktop貌似没有少这么多)
懒得一个个找,照着网上的搜了一堆之后还是需要一个个找漏的。
sudo apt-get install x11proto-gl-dev
sudo apt-get install libdrm-dev libxxf86vm-dev libxt-dev xutils-dev flex bison xcb libx11-xcb-dev libxcb-glx0 libxcb-glx0-dev xorg-dev libxcb-dri3-dev libxcb-dri2-0-dev
sudo apt-get install libxcb-xfixes0 libxcb-xfixes0-dev
sudo apt-get install libxcb-present-dev libxcb-sync-dev
sudo apt-get install libxshmfence-dev
出现找不到的包时,可以使用 apt search pkg_name
以上为吐槽,可以一步步执行,偷懒的话可以直接使用完整安装命令:
sudo apt-get install x11proto-gl-dev libdrm-dev libxxf86vm-dev libxt-dev xutils-dev flex bison xcb libx11-xcb-dev libxcb-glx0 libxcb-glx0-dev xorg-dev libxcb-dri3-dev libxcb-dri2-0-dev libxcb-xfixes0 libxcb-xfixes0-dev libxcb-present-dev libxcb-sync-dev libxshmfence-dev
./configure没有问题后,运行 make && make install,编译安装
vtk 代码编译
使用的cmake-gui,需要勾选advanced选项才能看到需要的设置项。
与Google到的选项不怎么一样,不知道是不是版本问题,可以在search框中搜索选项修改。本文主要修改:
VTK_USE_OFFSCREEN on
VTK_OPENGL_HAS_OSMESA on
VTK_USE_X off
之后使用正常方式编译执行代码
同上,vtkRenderWindow在执行render之前调用函数OffScreenRenderingOn()
得到的程序即可在Ubuntu Server下运行
未知问题
需要重启电脑???!! 原因未知,本来在ctrl+alt+f1中运行出错,使用ctrl+alt+f2打开另一个命令行之后程序运行没问题....
转载于:https://www.cnblogs.com/fly2wind/p/7662981.html
在Ubuntu Server上使用vtk处理体数据,直接得到渲染结果图片避免显示窗口相关推荐
- Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker-Compose简介与Ubuntu Server 上安装Compose
Compose简介 Compose是Docker官方的开源项目,负责对Docker容器集群的快速编排. Compose是定义和运行多个Docker容器的应用. 举例来说: 一个项目除了Tomcat容器 ...
- linux ubuntu安装 mono,在 Ubuntu Server 上安装配置 Mono 生产环境
在 Ubuntu Server 上安装配置 Mono 生产环境 在 Ubuntu Server 上安装和配置 Apache2 + Mono 生产环境的记录. 服务器环境是 Ubuntu Server ...
- ppa java 8_通过 ppa 在ubuntu server 上安装java 8
第一步:使用ppa/源方式安装,安装ppa sudo add-apt-repository ppa:webupd8team/java sudo apt-get update 第二步:安装 oracle ...
- Ubuntu Server上如何安装Gi
相信大家在学习Ubuntu系统的时候都接触过GI,但是并没有去深究,对于Ubuntu Server上如何安装Gi是不是很多人都还不会呢? 那么小编就为大家介绍Ubuntu Server上安装Gi的方法 ...
- Ubuntu Server 上在安装Nginx时执行./confgiure后提示:C compiler cc is not found
场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...
- 三、Ubuntu Server上安装Matlab,利用X11和Putty输出窗口到Windows桌面(补充内容)
一.安装Google Chrome浏览器 Openbox右键默认菜单中第二个选项是Web browser,但系统截至目前是没有安装任何网页浏览器的.我们可以选择安装Chrome,操作过程如下. # 在 ...
- Ubuntu Server上的LVM配置
在安装Linux的时候,通常遇到的一个比较头痛的问题就是分区,到底每个区该分多少,用了一段时间之后,某个分区又不够用了,该怎么办?如果是普通的服务器,那一切都好说,大不了就关机重新划分分区嘛,但是对于 ...
- 在Ubuntu Server上添加NFS共享文件夹
Synology NAS已搭建好NFS服务 Ubuntu上安装NFS命令支持 sudo apt install nfs-common Ubuntu上先创建要映射的文件夹 sudo mkdir /tes ...
最新文章
- 用ElasticSearch存储日志
- CF1472(div3):总结
- python把浮点数转换成16进制_Python将colorsys RGB坐标转换为十六进制
- python—符号 | ^的使用
- Tomcat 7 的domain域名配置,Tomcat 修改JSESSIONID
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_10_常用的函数式接口_Consumer接口中的默认方法andThen...
- java 抽奖算法_Java实现游戏抽奖算法
- RGBA转换成RGB
- 0x80004005错误代码解决方法,哪种方法快捷有效?
- 国内6大常见免费数据采集器特点分析
- 单耳蓝牙耳机怎么连接_蓝牙耳机怎么连接
- easypoi 合并单元格 横向 纵向
- html上下箭头动态效果,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果...
- 深扒程序员外包,为啥我不建议你去外包公司?
- mesh渲染到ui_Unity中UI曲面化
- 智慧消防管理系统实现全民消防造福全社会
- 保持冷静、继续前行——《白说》读后感
- 谷歌(google)全球网址
- 美团外卖API接入(三)
- OA软件的技术发展过程及未来趋势
热门文章
- 软考高项信息系统项目管理工程师自考500元搞定攻略
- js实现文字从右滚动到左边代码循环滚动实例
- java swing 注册事件_比较Java Swing中三种注册事件的方法
- 博图os更新_博途TIA安装与更新
- QtJava笔记-Qt与Java进行SSL双向认证(Qt服务端,Java客户端)
- C++工作笔记-仿大佬使用枚举类型
- 怎么修改图例位置_学到了学到了,叠加图,原来可以这样处理图例
- 乐高无限无法连接到服务器,乐高无限近期热点问题FQ 新手问题解答
- 访谈编码怎么做_怎么才能让口才得到提升
- 移动互联网APP测试流程及测试点(转载) (二)