​ 这篇文章中就要给我的四视图增加文字显示了,这个东西就是在我摄像机上面的,不会随着图像变化而变化,感觉这个是不是就是在3D中的那种HUD呢。

电梯

  • 1 效果展示
  • 2 vtkTextActor
  • 3 实现代码
    • 3.1 头文件
    • 3.2 源文件实现
      • 3.2.1 新建变量,赋值,设置属性
      • 3.2.2 加入到渲染器中
  • ☞ 源码

1 效果展示

​ 如下图所示,在每个图的左上角和左下角有文字显示,左上角显示的病人的基本信息,左下角显示的是当前切面。

2 vtkTextActor

​ 实现文字显示,主要将用到vtkTextActor,这里还是把参考链接附上

https://vtk.org/doc/nightly/html/classvtkTextActor.html

回家截图

3 实现代码

3.1 头文件

​ 既然用到了vtkTextActor那就就要包含他的头文件了,后面需要设置颜色啥的,所以需要我们顺便把属性头文件也包含了。如下

#include "vtkTextActor.h"
#include "vtkTextProperty.h"

​ 新建变量

vtkSmartPointer<vtkTextActor> textActor[4];
vtkSmartPointer<vtkTextActor> peopleInforTextActor[4];

3.2 源文件实现

3.2.1 新建变量,赋值,设置属性

for (auto i=0;i<4;i++)
{textActor[i] = vtkSmartPointer<vtkTextActor>::New();textActor[i]->SetDisplayPosition(5, 5);textActor[i]->GetTextProperty()->SetFontSize(14);textActor[i]->GetTextProperty()->SetFontFamily(VTK_FONT_FILE);textActor[i]->GetTextProperty()->SetFontFile(QString("./Fonts/simhei.ttf").toUtf8());
}
textActor[0]->SetInput(QString::fromUtf8("矢状").toUtf8());
textActor[0]->GetTextProperty()->SetColor(0, 1, 0);
textActor[1]->SetInput(QString::fromUtf8("冠状").toUtf8());
textActor[1]->GetTextProperty()->SetColor(0, 0, 1);
textActor[2]->SetInput(QString::fromUtf8("轴向").toUtf8());
textActor[2]->GetTextProperty()->SetColor(1, 0, 0);
textActor[3]->SetInput(QString::fromUtf8("3D").toUtf8());
textActor[3]->GetTextProperty()->SetColor(1, 1, 0);
for (auto i=0;i<4;i++)
{peopleInforTextActor[i] = vtkSmartPointer<vtkTextActor>::New();peopleInforTextActor[i]->GetTextProperty()->SetFontSize(14);peopleInforTextActor[i]->GetTextProperty()->SetFontFamily(VTK_FONT_FILE);peopleInforTextActor[i]->GetTextProperty()->SetFontFile(QString("./Fonts/simhei.ttf").toUtf8());peopleInforTextActor[i]->SetInput(reader->GetPatientName());
}
peopleInforTextActor[0]->GetTextProperty()->SetColor(0, 1, 0);
peopleInforTextActor[0]->SetDisplayPosition(5,ui->widget_1->height()-20);
peopleInforTextActor[1]->GetTextProperty()->SetColor(0, 0, 1);
peopleInforTextActor[1]->SetDisplayPosition(5,ui->widget_2->height()-20);
peopleInforTextActor[2]->GetTextProperty()->SetColor(1, 0, 0);
peopleInforTextActor[2]->SetDisplayPosition(5,ui->widget_3->height()-20);
peopleInforTextActor[3]->GetTextProperty()->SetColor(1, 1, 0);
peopleInforTextActor[3]->SetDisplayPosition(5,ui->widget_4->height()-20);

3.2.2 加入到渲染器中

​ 我这里有两种,如下:

riw[i]->GetRenderer()->AddActor(textActor[i]);
riw[i]->GetRenderer()->AddActor(peopleInforTextActor[i]);
ren->AddActor(textActor[3]);
ren->AddActor(peopleInforTextActor[3]);

​ 详细内容见源码

☞ 源码

源码链接:https://github.com/DreamLife-Jianwei/Qt-Vtk

使用方法:☟☟☟


医学四视图-004-四视图增加文字显示相关推荐

  1. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句

    实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...

  2. MVG学习笔记(5) --四视图几何和n视图重建

    四视图几何和n视图重建   可以使用基于张量的方法再进行一步,并定义四个视图中可见的四焦点张量相关实体. 然而这种方法很少使用,因为计算符合其内部约束的四焦点张量的相对困难.   然而,它确实提供了基 ...

  3. mysql实验四数据库查询和视图_实验四 数据库查询和视图.doc

    实验四 数据库查询和视图 测试过程:(实验中出现的问题.错误.解决方法) 问题一:新建查询,调试过程中出现提示无效行或列 问题二:新建查询,调试过程中出现第几行出现错误 解决办法:检查新建的查询,标点 ...

  4. Mysql第四天笔记04——视图和索引

    目录 1.为什么要使用视图 2.视图分类 3.创建视图 4.修改视图 5.视图上执行DML操作 6.索引 1.为什么要使用视图 限制其它用户对数据库表的访问,因为视图可以有选择性的显示数据库表的一部分 ...

  5. 建立视图实发工资mysql_MYSQL人事工资管理系统--设计视图(四)

    什么是视图? 视图(view)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的.视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的. 视图相对普通 ...

  6. 数据库 实验四 创建视图,使用视图,修改视图

    1.创建视图 --***① 将Student Course 和sc表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G *** CREATE VIEW V_S_C_G ASSELECT ...

  7. 《Spring In Action(第4版)》阅读总结(四)渲染Web视图

    渲染Web视图 将模型数据渲染为HTML 使用JSP视图 通过tiles定义视图布局 使用Thymealeaf视图 理解视图渲染 控制器只负责处理请求并返回模型数据和视图名 将控制器中请求处理逻辑与视 ...

  8. SQL语法精讲(包括建库、建表、建视图、查询、增加、删除、修改)

    SQL语法精讲(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELE ...

  9. mysql创建多表视图sql语句_SQL语法(包括建库、建表、建视图、查询、增加、删除、修改)...

    SQL语法(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE ...

最新文章

  1. 使用思维导图编写测试用例
  2. 站立潮头、无问西东 | 第二届“大数据在清华”高峰论坛成功举办
  3. cass地籍参数设置快捷命令_南方cass详解+视频教程+插件汇总,小白快速上手!限时领取...
  4. 【学术相关】为什么很多国内学者的AI的论文复现不了?
  5. 题目552-小数阶乘-nyoj20140811
  6. centos安装后iptables基本设置
  7. java项目高新_java高新技术
  8. 【网易云课堂---轻松读书:番茄工作法】
  9. 无法删除文件,无法读源文件或磁盘:U盘文件夹乱码无法删除的原因及解决方案...
  10. 软件测试女生可以学习么?现在还能入行么?
  11. 错误, Failed to introspect annotated methods on class org.springframework.boot.web.servlet.support.Spr
  12. 【前端学习-函数】js基础学习笔记
  13. kettle 用cmd bat来运行ktr和kjb
  14. Server2012 下 部署ADFS IFD
  15. 《光剑拾字编》甲子篇: 天干地支
  16. ElasticSearch整合SpringBoot的API操作
  17. Android 9 wifi PNO 扫描
  18. Codeforces Round #768 (Div. 1)(A-C)
  19. 微信小程序animation
  20. Python中的(1,)

热门文章

  1. 针对当当网畅销书籍榜单前500的研究分析
  2. ThinkPad 开机总提示找到新硬件 PCI Device
  3. node安装(超级详细版)适合小白
  4. [浏览器_1]-Windows 安装微软 Edge 浏览器以及配置 CSDN 浏览器助手
  5. selenium2library 倒入失败 解决方法
  6. 不好意思,我不想再听正确的废话了
  7. 计算机考试一级准考证
  8. Found GPU0 TITAN V which requires CUDA_VERSION = 9000 for optimal performance and fast startup time
  9. 【解决】关于 new Date 函数在苹果手机不兼容导致白屏的解决方案
  10. php数组指定位置后加,PHP 数组合并、增加元素、插入指定位置