当前位置: 首页 > news >正文

判断上颌下颌的stl模型坐标轴是否正常

文章目录

  • 研究方向:如何判断?又如何纠正?
    • 如何判断?
    • Demo实现:
      • 先判断一个
      • 遍历相关文件夹下的所有病例
    • 如何纠正?
    • Demo
  • 相关知识点

研究方向:如何判断?又如何纠正?

如何判断?

在这里插入图片描述
当然,我们不能以坐标的正负来判断
我们看到这个Bounding Box里面有stl模型的xyz三轴方向的最大值与最小值,如果是像左图那样,最明显的就是z轴的最大值是负数,他的范围是[-21.277,-3.4129],
然后,他的y轴范围是:[-21.0321,27.4901],
正常情况下,y轴的{max-min}的绝对值应该是<z轴的{max-min}的绝对值
也就是说:正常情况下,y轴的长度短于z轴的长度.(这个才是我们用来判断的标准)
在这里插入图片描述


Demo实现:

我们可以遍历某个文件的所有上颌的stl文件,按照上面的逻辑进行判断

先判断一个

const char* stlFilePath = "./upper.stl";
// 创建STL文件读取器
vtkSmartPointer<vtkSTLReader> reader =
vtkSmartPointer<vtkSTLReader>::New();
reader->SetFileName(stlFilePath);
reader->Update();// 获取STL数据
vtkSmartPointer<vtkPolyData> inputPolyData = reader->GetOutput();// Compute the bounding box
double bounds[6];
inputPolyData->GetBounds(bounds);// Bounds are in the form [xmin, xmax, ymin, ymax, zmin, zmax]
double xmin = bounds[0];
double xmax = bounds[1];
double ymin = bounds[2];
double ymax = bounds[3];
double zmin = bounds[4];
double zmax = bounds[5];// Calculate the corner points
double corners[8][3] = {{xmin, ymin, zmin},{xmax, ymin, zmin},{xmin, ymax, zmin},{xmax, ymax, zmin},{xmin, ymin, zmax},{xmax, ymin, zmax},{xmin, ymax, zmax},{xmax, ymax, zmax}
};
cout << "xmin:" << xmin << ",max:" << xmax <<",ymin:" << ymin << ",ymax:" << ymax <<",zmin:" << zmin << ",zmax" << zmax << endl;
//y轴长度
double Ylen = ymax - ymin;//z轴长度
double Zlen = zmax - zmin;
if (Ylen > Zlen) {//异常;cout << "此病例坐标轴异常" << endl;
}// 创建Mapper和Actor
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputData(inputPolyData);vtkSmartPointer<vtkActor> actor =
vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);// 创建渲染器和窗口
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(actor);vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor> interactor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
interactor->SetRenderWindow(renderWindow);//调整相机位置,调整显示范围
renderer->ResetCamera();//鼠标移动方式
vtkNew<vtkInteractorStyleTrackballCamera> style;
interactor->SetInteractorStyle(style);//设置坐标轴
vtkSmartPointer<vtkAxesActor> axes = vtkSmartPointer<vtkAxesActor

相关文章:

判断上颌下颌的stl模型坐标轴是否正常

文章目录 研究方向:如何判断?又如何纠正?如何判断?Demo实现:先判断一个遍历相关文件夹下的所有病例如何纠正?Demo相关知识点研究方向:如何判断?又如何纠正? 如何判断? 当然,我们不能以坐标的正负来判断 我们看到这个Bounding Box里面有stl模型的xyz三轴方向的最大值与最…...

C/C++---------------LeetCode第1189. “气球” 的最大数量

气球的最大数量 题目及要求统计法在main内使用 题目及要求 给你一个字符串 text&#xff0c;你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”&#xff08;气球&#xff09;。 字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 “ba…...

Arthas(阿尔萨斯)--(三)

目录 一、Arthas学习 1、class/classloader相关命令一 1、sc 2、sm 2、class/classloader相关命令二 1、jad 2、mc 3、redefine 三、class/classloader相关命令三 一、Arthas学习 Arthas(阿尔萨斯)--(一) Arthas(阿尔萨斯)--(二) 1、class/classloader相关命令一 …...

《变形监测与数据处理》笔记/期末复习资料(择期补充更新)

变形&#xff1a; 变形是物体在外来因素作用下产生的形状、大小及位置的变化&#xff08;随时间域和空间域的变化&#xff09;&#xff0c;它是自然界普遍存在的现象。 变形体&#xff1a; 一般包括工程建筑物、构筑物、大型机械设备以及其他自然和人工对象等。 变形体和变形…...

Linux:进程替换和知识整合

文章目录 进程程序替换替换原理进程替换的理解 环境变量与进程替换命令行解释器实现逻辑 进程程序替换 前面已经学习了子进程的创建&#xff0c;但是子进程的创建不管怎么说&#xff0c;都是父进程代码的一部分&#xff0c;那么实际上如果想要子进程执行新的程序呢&#xff1f…...

React组件在什么情况下会重新渲染

当我们使用React编写组件时&#xff0c;组件的重新渲染是一个重要的概念。重新渲染是指React组件在特定情况下会重新执行其渲染函数&#xff0c;更新用户界面以反映最新的数据。很多情况下&#xff0c;组件不必要的重新渲染会严重影响性能&#xff0c;所以要充分了解触发组件重…...

云ES容灾方案

一、ES集群可用性容灾 1.1 云ES集群可用性容灾(使用跨可用区实例) 云ES集群部署在三个可用区,单可用区故障,云ES集群依然可能对外提供服务;两个可用区故障,需要进行控制台切流(集群会自动切的选择主节点) 应用服务部署在二个可用区,单可用区故障,依然可对提供服务1.2 …...

Golang 中的 Context 包

简介 今天&#xff0c;我们将讨论 Go 编程中非常重要的一个主题&#xff1a;context 包。如果你现在觉得它很令人困惑&#xff0c;不用担心 — 在本文结束时&#xff0c;你将像专家一样处理 context&#xff01; 想象一下&#xff0c;你在一个主题公园&#xff0c;兴奋地准备…...

nginx服务器

nginx反向代理 nginx 反向代理的好处&#xff1a; 提高访问速度 因为nginx本身可以进行缓存&#xff0c;如果访问的同一接口&#xff0c;并且做了数据缓存&#xff0c; nginx就直接可把数据返回&#xff0c;不需要真正地访问服务端&#xff0c;从而提高访问速度。 进行负载均衡…...

电脑常用快捷键

一、Win键&#xff08;徽标键&#xff09; 以下是Windows操作系统中使用Win键&#xff08;徽标键&#xff09;结合A-Z的所有快捷方式描述&#xff1a; - Win A&#xff1a;打开操作中心&#xff0c;访问系统通知、快速设置和其他功能 - Win B&#xff1a;将焦点设置到任务栏…...

吴恩达《机器学习》8-3->8-4:模型表示I、模型表示II

8.3、模型表示I 一、大脑神经网络的基本原理 为了构建神经网络模型&#xff0c;首先需要理解大脑中的神经网络是如何运作的。每个神经元都可以被看作是一个处理单元或神经核&#xff0c;它包含多个输入&#xff08;树突&#xff09;和一个输出&#xff08;轴突&#xff09;。…...

数据结构-二叉树力扣题

目录 1.相同的树 2.二叉树中查找值为x的节点 3.单值二叉树 4.对称二叉树 5.二叉树的前序遍历 6.另一颗树的子树 层序遍历&#xff1a; 7.二叉树遍历 8.判断二叉树是否是完全二叉树 一个特殊的性质&#xff1a; 1.相同的树 题目链接&#xff1a;力扣&#xff08;LeetC…...

node 第十八天 中间件express-session实现会话密钥

express-session 文档 express-session 一个简单的express会话中间件 使用场景 在一个系统中&#xff0c; 需要维持一个临时的与登录态无关的会话密钥 比如登录系统后&#xff0c; 请求某一个接口&#xff0c; 接口的行为与登录态无关&#xff0c; 也就是说任何人对接口的访问…...

【机器学习基础】机器学习入门(1)

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ &#x1f4a1;专栏介绍&#xff1a; 本专栏的第一篇文章&#xff0c;当然要介绍一下了~来说一下这个专栏的开…...

赶快来!程序员接单必须知道的六大注意事项!!!

花花世界迷人眼&#xff0c;增加实力多搞钱&#xff01;对于咱程序员来说&#xff0c;搞钱的最好办法就是网上接单了&#xff0c;相信也有不少小伙伴已经在尝试了吧&#xff01;但是如何正确的搞钱呢&#xff1f;其中的注意事项你真的了解吗&#xff1f; 本期就和小编一起来看…...

【C++】日期类实现,与日期计算相关OJ题

文章目录 日期类的设计日期计算相关OJ题HJ73 计算日期到天数转换KY111 日期差值KY222 打印日期KY258 日期累加 在软件开发中&#xff0c;处理日期是一项常见的任务。为了方便地操作日期&#xff0c;我们可以使用C编程语言来创建一个简单的日期类。在本文中&#xff0c;我们将介…...

前端404页面的制作

1、背景 前端开发经常遇到输入路径不存在的问题&#xff0c;为此&#xff0c;把之前项目的404拿出来供大家参考。代码很简单&#xff0c;适合新手入手&#xff0c;效果如下&#xff1a; 2、代码引用的是element-plus框架 <template><div><el-result icon"…...

深兰科技轮腿家用AI机器人荣获“2023年度城市更新科创大奖”

近日&#xff0c;“2023金砖论坛第五季金立方城市更新科创大会”在上海举行&#xff0c;会上发布了《第12届金砖价值榜》&#xff0c;深兰科技研发出品的轮腿式家用AI机器人(兰宝)&#xff0c;因其AI技术的创新性应用&#xff0c;荣获了“2023年度城市更新科创大奖”。 在10月2…...

669.修剪二叉树

原题链接:669.修剪二叉树 全代码&#xff1a; class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (root nullptr ) return nullptr;if (root->val < low) {TreeNode* right trimBST(root->right, low, high); // 寻找符合区间[l…...

论文绘图-机器学习100张模型图

在现代学术研究和技术展示中&#xff0c;高质量的图表和模型结构图是至关重要的。这尤其在机器学习领域更为显著&#xff0c;一个领域以其复杂的算法和复杂的数据结构而闻名。机器学习是一种使用统计技术使计算机系统能够从数据中学习和改进其任务执行的方法&#xff0c;而有效…...

ollama部署本地大模型|embeddinggemma-300m嵌入质量评估方法论

ollama部署本地大模型&#xff5c;embeddinggemma-300m嵌入质量评估方法论 1. 引言&#xff1a;为什么需要本地嵌入模型&#xff1f; 想象一下&#xff0c;你正在开发一个智能搜索系统&#xff0c;需要快速理解用户查询的语义含义&#xff0c;并在海量文档中找到最相关的内容…...

PP-DocLayoutV3参数详解:text/title/table/figure等11类版面区域置信度解析

PP-DocLayoutV3参数详解&#xff1a;text/title/table/figure等11类版面区域置信度解析 1. 引言&#xff1a;为什么版面分析需要“置信度”&#xff1f; 想象一下&#xff0c;你拿到一份扫描的合同&#xff0c;想用OCR&#xff08;文字识别&#xff09;把它变成可编辑的电子版…...

基于Pixel Epic · Wisdom Terminal的MySQL智能运维:安装配置与性能调优

基于Pixel Epic Wisdom Terminal的MySQL智能运维&#xff1a;安装配置与性能调优 1. 引言 MySQL作为最流行的开源关系型数据库&#xff0c;在各类业务系统中扮演着核心角色。但传统的数据库运维往往面临几个痛点&#xff1a;配置参数复杂难懂、SQL优化依赖经验、性能问题排查…...

【力扣100题】09.反转链表

一、题目描述 给定单链表的头节点 head&#xff0c;反转链表并返回反转后的链表。 示例 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]输入&#xff1a;head [] 输出&#xff1a;[]二、核心思路 关键观察…...

Python自动化脚本:从零构建《三国杀》钓鱼辅助

1. 环境准备&#xff1a;搭建自动化钓鱼的基石 想要实现《三国杀》钓鱼自动化&#xff0c;首先需要搭建一个稳定的开发环境。我推荐使用雷电模拟器9作为游戏运行平台&#xff0c;它不仅对Android游戏兼容性好&#xff0c;而且提供了丰富的调试功能。记得在安装时选择非vivo手机…...

MetaTube插件:智能元数据整合引擎的技术架构深度解析

MetaTube插件&#xff1a;智能元数据整合引擎的技术架构深度解析 【免费下载链接】jellyfin-plugin-metatube MetaTube Plugin for Jellyfin/Emby 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metatube 在Jellyfin/Emby媒体服务器生态系统中&#xff…...

灵毓秀-牧神-造相Z-Turbo使用全攻略:从环境检查到作品输出

灵毓秀-牧神-造相Z-Turbo使用全攻略&#xff1a;从环境检查到作品输出 1. 镜像简介与核心功能 灵毓秀-牧神-造相Z-Turbo是一款基于Xinference部署的AI文生图模型服务&#xff0c;专门用于生成《牧神记》中灵毓秀角色的高质量图像。该镜像集成了Gradio交互界面&#xff0c;让用…...

3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具

3分钟上手弹幕盒子&#xff1a;零基础高效制作自定义弹幕的免费工具 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 弹幕盒子是一款专业的在线自定义弹幕生成工具&#xff0c;以轻量化架构设计为核心&a…...

Java八股文面试题,堪称2026最强!!!

1、什么是 java 序列化&#xff0c;如何实现 java 序列化 难度系数&#xff1a;⭐ 序列化是一种用来处理对象流的机制&#xff0c;所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作&#xff0c;也可将流化后的对象传输于网络之间。序列化是为了解决在…...

手把手教程:在CSDN星图一键部署LFM2.5轻量模型,低配电脑也能跑AI

手把手教程&#xff1a;在CSDN星图一键部署LFM2.5轻量模型&#xff0c;低配电脑也能跑AI 还在为本地跑不动大模型而烦恼吗&#xff1f;今天我要分享一个好消息&#xff1a;即使你的电脑配置不高&#xff0c;也能轻松部署一个实用的AI文本生成模型。LFM2.5-1.2B-Thinking-GGUF就…...