VTK中GetOutputPort()和GetOutput()的区别

SetInput()函数被彻底删除了,只剩下SetInputConnection()和SetInputData()函数:

1、GetOutputPort():
GetOutputPort() 返回的是上一个算法管道对象输出(output port)的引用。它是用于连接到当前算法输入端口的对象,通常在构建VTK管道时使用。

将上一个算法的输出连接到当前算法的输入时,可以使用 GetOutputPort() 获取上一个算法的输出端口,然后将其连接到当前算法的输入端口:

被用于SetInputConnection()的reader是算法对象的名字,不是数据对象的名字:

//读入Structurered_Points类型的vtk文件vtkSmartPointer<vtkStructuredPointsReader> reader = vtkSmartPointer<vtkStructuredPointsReader>::New();reader->SetFileName("data/head.vtk");//路径//体绘制方法提取等值面,marchingCubes算法的输出作为mapper算法的输入vtkSmartPointer<vtkMarchingCubes> marchingCubes = vtkSmartPointer<vtkMarchingCubes>::New();marchingCubes->SetInputConnection(reader->GetOutputPort());marchingCubes->SetValue(0,1500); //等值面应该是关心的解剖结构//将生成的等值面数据进行Mapper,mapper算法接收marchingCubes算法的输出vtkSmartPointer<vtkPolyDataMapper> mapper =vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(marchingCubes->GetOutputPort());//送入到数据映射器中处理

作为管道对象,与SetInputConnection()一同使用

vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
vtkSmartPointer<vtkPolyDataMapper> mapper2 = vtkSmartPointer<vtkPolyDataMapper>::New();mapper2->SetInputConnection(reader->GetOutputPort());//获取reader算法管道本身的输出作为mapper2算法管道的输入reader->SetFileName("xxxxx.STL");
mapper1->Update();

这里也是,reader是作为算法对象名被SetInputConnection所连接的。

//读取JPG序列图像vtkSmartPointer <vtkJPEGReader> reader = vtkSmartPointer <vtkJPEGReader>::New();reader->SetFileNames(fileArray);//reder是算法管道对象//显示vtkSmartPointer<vtkImageViewer2> viewer = vtkSmartPointer<vtkImageViewer2>::New();viewer->SetInputConnection(reader->GetOutputPort());//reader管道对象作为输入vtkSmartPointer<vtkRenderWindowInteractor> interact =vtkSmartPointer<vtkRenderWindowInteractor>::New();

2、GetOutput():

GetOutput() 返回的是算法的实际输出数据对象。它是一个智能指针,可以使用它来获取算法的输出数据,进行进一步的处理或直接使用。

在不需要将上一个算法的输出连接到当前算法的输入,而是直接操作上一个算法的输出数据时,对这个输出数据本身使用 GetOutput()。

作为SetInputData()接口的的sphereSource是数据对象的名字,不是算法对象的名字。

vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputData(sphereSource->GetOutput()); // 直接使用GetOutput()

 input是作为独立数据对象名,与SetInputData()一同使用:

    vtkDataObject* input = inInfo->Get(vtkDataObject::DATA_OBJECT());this->InternalFilter->SetInputData(input);//input是一个独立数据对象,不是算法管道输出结果的引用this->InternalFilter->Update();

output也是数据对象名,不是算法对象名。output是aFilter算法管道对象的输出:

 vtkDataObject* output = aFilter->GetOutput();//output是aFilter算法管道输出的结果,但它不是aFilter算法管道输出的引用,而是独立的数据对象aFilter->Update();anotherFilter->SetInputData(output);//SetInputData将独立数据对象output作为anotherFilter算法的输入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#-面向对象基本概念

1. 面向对象基本概念 之前所接触到的编程方式叫做面向过程面向过程和面向对象是两种不同的编程方式对比面向过程的特点&#xff0c;可以更好的了解什么是面向对象 1.1 过程和函数&#xff08;科普&#xff09; 过程是早期的一个编程概念过程类似于函数&#xff0c;只能执行&…

【JAVA笔记】IDEA配置本地Maven

文章目录 1 配置本地Maven1.1 Maven下载1.2 Maven安装与配置1.2.1 安装1.2.2 配置1.2.2.1 环境配置1.2.2.2 本地仓库配置 2 IDEA设置本地Maven 1 配置本地Maven 1.1 Maven下载 官网&#xff1a;http://maven.apache.org/下载地址&#xff1a;http://maven.apache.org/downloa…

浏览器如何查看http请求的报文?

HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。 它可以使浏览器更加高效&#xff0c;使网络传输减少。 它不仅保证计算机正确快速地传输超文本文档&#xff0c;还确定传输文档中的哪一部分&#xff0c;以及哪部分内容首先显示 (如文本先于图形)等。所以在node.js里…

Vertex cover preprocessing for influence maximization algorithms

Abstract 影响力最大化问题是社交网络分析中的一个基本问题&#xff0c;其目的是选择一小组节点作为种子集&#xff0c;并在特定的传播模型下最大化通过种子集传播的影响力。本文研究了独立级联模型下影响力最大化算法中执行顶点覆盖作为预处理的效果。所提出的方法从主要计算过…

网络通信加密算法有哪些及其原理

网络通信加密算法的原理 网络通信加密算法的原理可以通过两种算法来解释&#xff1a;对称加密算法和非对称加密算法。 对称加密算法&#xff1a;对称加密算法使用相同的密钥来进行加密和解密。在通信开始之前&#xff0c;双方需要协商一个密钥&#xff0c;并确保第三方无法获…

结构体成员访问操作符

1.结构体成员的直接访问&#xff1a; 结构体变量.成员名&#xff1a; 2.结构体成员的间接访问: 间接访问应用于指向结构体变量的指针&#xff1a;如下

Qt应用开发(安卓篇)——安卓广播机制

一、前言 在Android的开发中&#xff0c;我们的程序需要得到网络状态变化、电池状态、屏幕状态、电池、系统启动完成、U盘等外设接入状态、apk安装等这些信息&#xff0c;除了主动去找到这些节点的信息&#xff0c;还可以通过安卓的广播机制被动去得到。 Android广播机制包含三…

代码随想录算法训练营第九天|28. 实现 strStr()、459.重复的子字符串、字符串总结、双指针回顾

题目&#xff1a;28. 实现 strStr() 文章链接&#xff1a;代码随想录 视频链接&#xff1a;LeetCode:实现strStr 题目链接&#xff1a;力扣题目链接 详解&#xff1a;KMP&#xff1a;主要应用于字符串匹配&#xff0c;当出现字符串不匹配是&#xff0c;可以知道一部分之前已…

YOLOv8独家改进:block改进 | RepViTBlock和C2f进行结合实现二次创新 | CVPR2024清华RepViT

💡💡💡本文独家改进:CVPR2024 清华提出RepViT:轻量级新主干!从ViT角度重新审视移动CNN,RepViTBlock和C2f进行结合实现二次创新 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡…

数字化时代的风向标:解密Facebook的成功秘诀

在当今数字化时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分&#xff0c;而Facebook作为全球最大的社交媒体平台之一&#xff0c;其成功之处不言而喻。本文将深入探讨Facebook的成功秘诀&#xff0c;解密其在数字化时代的风向标。 用户体验至上&#xff1a; …

深入探讨ChatGPT:技术突破与应用前景

目录 一、ChatGPT究竟是什么&#xff1f; 二、ChatGPT的发展脉络 三、ChatGPT的突出优势 强大的语言生成能力 多场景适应性 多语言处理能力 广泛的应用范围 数据敏感性的重视 四、结语&#xff1a;ChatGPT的未来与挑战 Tips&#xff1a;国内的ChatGPT ⭐ 点击进入Chat…

c#——请求一个URL接口

.net 4.6环境下 .net4.6支持异步编程 命名空间&#xff1a; using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; 创建一个异步方法发送请求&#xff1a; public static async Task<string> CallWebAPIAsync(string url, strin…

什么是React属性钻取(Prop Drilling)

一、介绍 在React开发过程中&#xff0c;状态管理是一个绕不开的话题。无论是新手还是有经验的开发者&#xff0c;都会面临如何有效管理组件状态的挑战。React为我们提供了多种状态管理方案&#xff0c;如直接的状态传递&#xff08;俗称"属性钻取"&#xff09;、Co…

那些年我们在数模竞赛中踩过的坑(附避坑指南)

数乐君猜测关注我们的同学大多都已经参加过数模竞赛了&#xff0c;可能有的同学对于数模竞赛的经验已经很丰富&#xff0c;或者即将要参加第一次数模竞赛&#xff0c;但要说起曾经在数模竞赛中踩的那些坑&#xff0c;也是有苦难言&#xff0c;那或许大家会好奇&#xff0c;数模…

【神经网络 基础知识整理】前向传播 反向传播

神经网络 基础知识整理 前向传播前向传播pytorch中的forward函数 反向传播 顾名思义&#xff0c;前向传播是从前往后传播的&#xff0c;从input层到output层的方向&#xff1a;前面一层的输出传入后一层作为输入&#xff0c;再对数据进行相应的处理&#xff0c;继续传下去&…

力扣Lc17--- 345.反转字符串中的元音字母(java版)-2024年3月18日

1.题目 2.知识点 注1&#xff1a; indexOf() 是 Java 中 String 类的方法之一&#xff0c;它用于查找指定字符或字符串在字符串中第一次出现的位置。如果找到了该字符或字符串&#xff0c;则返回它在字符串中的索引位置&#xff08;从0开始&#xff09;&#xff0c;如果没有找…

Qt的多线程类

主要介绍一些Qt的多线程类 QThread QThread 是 Qt 提供的基本的多线程类&#xff0c;它允许创建自定义的线程。可以继承 QThread 类&#xff0c;并重写其 run() 方法&#xff0c;在 run() 方法中编写线程要执行的代码。以下是一个简单的示例&#xff1a; #include <QThre…

03、判断和循环

三、判断与循环 文章目录 三、判断与循环顺序结构分支结构If语句在程序中就是用来判断的switch 循环结构forwhiledo while 顺序结构 顺序结构是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 分支结构 If语句在程序中就是用来判断的 …

C语言 实用调试技巧

我们的博客已经更新到了数据结构&#xff0c;但是当我在深耕数据结构时我发现我在C语言是遗漏了一个重要的东西&#xff0c;那就是C语言的使用调试技巧。这篇博客对数据结构非常重要&#xff0c;请大家耐心观看。 1. 什么是bug&#xff1f; 第一次被发现的导致计算机错误的飞蛾…

抖音小店怎么高效的对接达人?分享四年老运营的经验,可记笔记!

大家好&#xff0c;我是电商糖果 抖音现在最火的卖货方式&#xff0c;依旧是达人带货&#xff0c;也就是商家和达人合作模式。 有很多刚开店的朋友找达人合作总是失败&#xff0c;不知道什么原因。 其实找达人合作是需要技巧的&#xff0c;糖果做抖音小店已经四年了&#xf…