Streamlit如何展示3D模型?

news/2024/11/29 5:47:31/

Streamlit 是一个非常好的创建 web demo 的库,但是对于单目深度估计很难找到可以展示 3D 模型的东西。

正如我刚刚在 Jupyter Notebook 中使用 obj2html 库可视化 3D 模型所做的那样,我创建了一个演示:HuggingFacae Spaces Monocular Depth Estimation。
在这里插入图片描述

但在这篇文章中,我只谈到将 3D 模型转换为 streamlit。

推荐:使用 NSDT场景设计器 快速搭建3D场景。

1、安装要求

我们可以轻松地使用 pip 安装所需的库:

pip install streamlit obj2html
# or specify your version of python if multiple
python3.8 -m pip install streamlit obj2html

2、Streamlit 应用程序

将 model.object 放入文件夹中,你可以通过此链接 下载,或者在 linux 上使用如下命令下载:

wget https://gitlab.com/nicolalandro/obj2html/-/raw/main/test/assets/model.obj

创建一个简单的 Streamplit app.py:

import streamlit as st
import streamlit.components.v1 as components
from obj2html import obj2html
# 3D view
html_string = obj2html("model.obj", html_elements_only=True)
components.html(html_string)
# Download .obj button
with open("model.obj") as f:st.download_button('Download model.obj', f, file_name="download_name.obj")

现在可以运行你的 streamlit 应用程序了:

streamlit run app.py
# or specify your version of python if multiple
python3.8 -m streamlit run app.py

可以访问 localhost:8501 在线查看演示:

在这里插入图片描述

3、结束语

obj2html 库很年轻,但可以简单地在 Jupyter 和 Streamlit 上使用,非常适合此类项目的原型设计。

obj2html使用 Three.js 并且只是一种用 three.js 编写 html 文件的 python 包装器。 该项目真正幸运的只有一个功能:支持材质(.mat)以使用纹理和法线贴图等。


原文链接:Streamlit展示3D模型 — BimAnt


http://www.ppmy.cn/news/18578.html

相关文章

详解 C 语言文件操作(上)

目录 一、什么是文件? 1.1 - 文件的基本概念 1.2 - 文件的分类 1.3 - 文件名 二、缓冲文件系统和非缓冲文件系统 三、文件指针类型 四、文件的打开和关闭 4.1 - fopen 4.2 - fclose 一、什么是文件? 1.1 - 文件的基本概念 所谓"文件&quo…

论文投稿指南——中文核心期刊推荐(武器工业)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

SAPIEN PowerShell Studio 介绍

PowerShell Studio是一款优秀的基于PowerShell研发的脚本编辑器,它拥有全新的代码分析、智能预选、xaml支持功能,能够给用户提供一套完整的软件开发环境,让用户能够更加轻松的工作,这样一来大家开发项目的效率就会大大提升。创建模…

11.框架MyBatis-Plus

一、基本概念 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 导入依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><ar…

LeetCode刷题笔记 - JavaScript(四)

文章目录1.剑指 Offer 37. 序列化二叉树1.剑指 Offer 19. 正则表达式匹配剑指 Offer 37. 序列化二叉树 剑指 Offer 19. 正则表达式匹配 LCOF 1.剑指 Offer 37. 序列化二叉树 请实现两个函数&#xff0c;分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列…

【Ajax】了解Ajax与jQuery中的Ajax

一、了解Ajax什么是AjaxAjax 的全称是 Asynchronous Javascript And XML&#xff08;异步 JavaScript 和 XML&#xff09;。通俗的理解&#xff1a;在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式&#xff0c;就是Ajax。2. 为什么要学Ajax之前所学的技术&#xf…

Python机器学习数据建模与分析——Numpy和Pandas综合应用案例:空气质量监测数据的预处理和基本分析

本篇文章主要以北京市空气质量监测数据为例子&#xff0c;聚集数据建模中的数据预处理和基本分析环节&#xff0c;说明Numpy和Pandas的数据读取、数据分组、数据重编码、分类汇总等数据加工处理功能。同时在实现案例的过程中对用到的Numpy和Pandas相关函数进行讲解。 文章目录数…

【数据结构——顺序表的实现】

前言&#xff1a; 在之前我们已经对复杂度进行的相关了解&#xff0c;因此现在我们将直接进入数据结构的顺序表的相关知识的学习。 目录1.线性表2.顺序表2.1概念及结构2.2 接口实现2.2.1.打印顺序表2.2.2初始化顺序表2.2.3.容量的检查2.2.4.销毁顺序表2.2.5.尾插操作2.2.6.尾删…