glb读取颜色

顶点颜色:

python 复制代码
import trimesh
import numpy as np
from PIL import Image
import os

scene = trimesh.load(r"E:\pro_math\math_image\3d_print\chaijian\baozha.glb", force='scene')

print(f"📦 找到 {len(scene.geometry)} 个部件")

all_colors = []
color_map = {}

for name, mesh in scene.geometry.items():
    if not isinstance(mesh, trimesh.Trimesh):
        continue

    # 提取顶点颜色
    if hasattr(mesh.visual, 'vertex_colors') and mesh.visual.vertex_colors is not None:
        colors = mesh.visual.vertex_colors
        # 取最常见的颜色(众数)
        unique_colors, counts = np.unique(colors, axis=0, return_counts=True)
        dominant = unique_colors[np.argmax(counts)]
        hex_color = f"#{dominant[0]:02x}{dominant[1]:02x}{dominant[2]:02x}"
        color_map[name] = hex_color
        all_colors.append(hex_color)
        print(f"  {name}: {hex_color}")

# 去重颜色
unique_colors = list(set(all_colors))
print(f"\n🎨 共检测到 {len(unique_colors)} 种颜色:")
for c in unique_colors:
    print(f"  {c}")
相关推荐
Dovis(誓平步青云)3 分钟前
牛奶不能减成负数:冰箱库存的筛选、去重与不可变更新
android·java·开发语言
OPEN-F5 分钟前
Python进阶教程:算法与数据结构入门
开发语言·python
薛定猫AI15 分钟前
【技术干货】Claude Code多模型代理与反馈闭环:Python实现可验证的AI编程工作流
开发语言·python·ai编程
XR12345678816 分钟前
工厂车间无线网络怎么选?AGV 与复杂环境是分水岭
开发语言·php
zq_638922 分钟前
利用 MATLAB 调用 STK Object Model COM 显示雷达受干扰前后探测范围的变化
开发语言·matlab
每天一道题25 分钟前
从 async/await 到幂等恢复:把 Python 并发和 Agent Runtime 一次讲清楚
分布式·python
一只积极向上的小咸鱼31 分钟前
pytorch 与资源核算
人工智能·pytorch·python
大黄说说36 分钟前
类型安全时代:PHP 8+ 的联合类型、交集类型与泛型(模板)最佳实践
开发语言·安全·php
reasonsummer36 分钟前
【办公类110-08】20260807园园通-“小班“户籍地址和居住地址补充完整+外省市所在“省市区”两个按钮手工填写(Python+EXCEL)
python·excel·园园通
whcyhhh37 分钟前
头歌实践教学平台:数据科学与大数据技术导论(五)
大数据·数据库·python