首页 > 其他分享 >VTK 标注类Widget 文字标注 vtkCaptionWidget

VTK 标注类Widget 文字标注 vtkCaptionWidget

时间:2023-10-26 11:03:31浏览次数:34  
标签:imageViewer captionRepresentation vtkCaptionWidget VTK vtkSmartPointer captionWi


目录

Part1: 简介

Part2: 效果

 Part3: example


Part1: 简介

vtkCaptionWidget:用一个带线框及箭头的文本信息来标注某一对象;

在可视化程序中,经常会对某个对象做一些标注说明;

如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。

Part2: 效果

vtkCaptionWidget 如下表所示

VTK 标注类Widget 文字标注 vtkCaptionWidget_文字标注

 也可以给它加个中心点;

VTK 标注类Widget 文字标注 vtkCaptionWidget_#include_02

 Part3: example

#include "vtkSmartPointer.h"
#include "vtkObjectFactory.h"
#include "vtkRenderWindow.h"
#include "vtkGenericRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkActor.h"

#include "vtkDICOMImageReader.h"
#include "vtkImageViewer2.h"
#include "vtkInteractorStyleImage.h"

/
#include <vtkCamera.h>
#include <vtkCoordinate.h>
 
#include <vtkImageActor.h>
#include <vtkImageData.h>
#include <vtkImageMapper3D.h>
#include <vtkImageMapToWindowLevelColors.h>
#include <vtkImageStack.h>
#include <vtkObjectFactory.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRendererCollection.h>

#include <vtkDataSet.h>
#include <vtkRendererCollection.h>


#include <vtkPointData.h>
#include <vtkDataArray.h>
#include <vtkRenderWindowInteractor.h>
 

#include <vtkCaptionWidget.h>
#include <vtkCaptionActor2D.h>///
#include <vtkCaptionRepresentation.h>
#include <vtkTextActor.h>
#include <vtkTextProperty.h>

#include <vtkPointPicker.h>
#include <vtkRendererCollection.h>

int main(int argc, char* argv[])
{

	auto reader = vtkSmartPointer<vtkDICOMImageReader>::New();
	reader->SetDirectoryName("D:/dicom");
	reader->Update();

	auto imageViewer = vtkSmartPointer<vtkImageViewer2>::New();
	imageViewer->SetInputConnection(reader->GetOutputPort());

	auto interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
	interactor->SetRenderWindow(imageViewer->GetRenderWindow());
	imageViewer->SetupInteractor(interactor);
	imageViewer->SetSize(400, 400);
	imageViewer->SetColorLevel(211);
	imageViewer->SetColorWindow(2470);
	imageViewer->SetSliceOrientationToXY();
	imageViewer->GetRenderer()->SetBackground(0, 0, 0);


	vtkSmartPointer<vtkCaptionWidget> captionWidget =
		vtkSmartPointer<vtkCaptionWidget>::New();
	captionWidget->SetInteractor(interactor);

	captionWidget->GetCaptionActor2D();

	vtkSmartPointer<vtkCaptionRepresentation> captionRepresentation =
		vtkSmartPointer<vtkCaptionRepresentation>::New();
	captionRepresentation->GetCaptionActor2D()->SetCaption("VTK Caption Test");
	captionRepresentation->SetHandleSize(20);
	//captionRepresentation->GetCaptionActor2D()->SetBorder(false);
	captionRepresentation->GetCaptionActor2D()->GetTextActor()->GetTextProperty()->SetColor(1, 0, 0);
	captionRepresentation->GetCaptionActor2D()->GetTextActor()->GetTextProperty()->SetVerticalJustificationToCentered();
 
	double pos[3] = { 100,100, 10};
	captionRepresentation->SetAnchorPosition(pos);
	//captionWidget->SetCaptionActor2D(captionRepresentation->GetCaptionActor2D());
	captionWidget->SetRepresentation(captionRepresentation);
	captionWidget->On();
 
	imageViewer->Render();
	imageViewer->GetRenderer()->ResetCamera();
	imageViewer->Render();

	//memcpy(style->bound, captionWidget->GetRepresentation()->GetBounds(), sizeof(double) * 6);
	interactor->Start();

	return EXIT_SUCCESS;
}

标签:imageViewer,captionRepresentation,vtkCaptionWidget,VTK,vtkSmartPointer,captionWi
From: https://blog.51cto.com/u_12389088/8030976

相关文章

  • 记录--vue3 + mark.js | 实现文字标注功能
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助页面效果具体实现新增1、监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过选中的文字长度是否大于0或window.getSelection().isCollapsed(返回一个布......
  • 图形类——剪图+贴图+马赛克+箭头+标注+取色
    1.Snipaste是一个简单但强大的贴图工具,同时也可以执行截屏、标注等功能。 Snipaste-截图+贴图 ......
  • VTK 判断一个 点 是否在一个模型 stl 内部 vtk 点是否在内部 表面 寻找最近点
    判断一个点,判断是否在风格stl模型内部,或表面:目录1.方案一:使用vtkCellLocator  FindClosestPoint找到模型上距离给定点最近的一点,计算两点的距离,小于某一阈值则认为此点在模型上;2.方案二使用vtkKdTreePointLocator3.方案三使用vtkSelectEnclosedPoints1.方案一:使用vtk......
  • 一些开源数据标注工具
    整理一些工具,方便学习使用doccano主要是进行文本处理的label-studio比较强大的工具,支持多种数据处理,目前迭代升级也比较快速audino进行声音标注的工具,目前不是很活跃了,好久没新的提交信息了abel-studio-converterlabel-studio提供的通用数据转换服务,可以方便用来快速使用......
  • cad标注文字太小,随比例改变设置 注释性; 文字太小
    标注文字太小命令:dimstyle——选中第1个——修改——调整——注释性打勾右下角:选择合适文字比例:文字太小双击文字,修改(高度),数值越大,越大......
  • 灰度质心法绘出带方向的标注圆
    灰度质心法绘出带方向的标注圆在给出特征点坐标及领域旋转描述后,在对应位置画圆,并根据旋转信息画出有方向的半径效果如下clcclearallcloseall%%初始化参数dog=imread("kobi.png");%灰度化dogGray=rgb2gray(dog);%角点检测points=detectHarrisFeatures(dogGr......
  • (一)LaTeX多种颜色标注高亮修改内容
    1.问题近日,需要在LaTeX文档中用多种颜色进行高亮标注。以往一般是生成PDF后手动标注,但实在是太低效,而且重新生成PDF以后还要重新标注。一番搜索后决定使用soul包来解决2.解决方法soul的主要功能有四:字间空格\so下划线\ul删除线\st高亮\hl本文主要介绍高亮的用......
  • 词性标注
    什么是词性标注自然语言处理(NLP)中的词性标注(Part-of-SpeechTagging,简称POSTagging)是文本处理的一项重要任务,其目标是为给定的文本中的每个单词或标记分配一个词性标签,表示该单词在句子中的语法角色和词性类别。这些标签通常用于分析文本的语法结构和语义含义,有助于理解文本中的......
  • vue3 + mark.js | 实现文字标注功能
    页面效果具体实现新增1、监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过选中的文字长度是否大于0或window.getSelection().isCollapsed(返回一个布尔值用于描述选区的起始点和终止点是否位于一个位置,即是否框选了)来......
  • 深度学习之“智能标注”
    深度学习之“智能标注”,基于视觉大模型,降低标注工作量、提升标注效率与标注质量,详情参见https://docs.neurobot.co/zh_CN/latest/CreateAModel/labelingAssistant/......