当前位置:网站首页>tkinter窗口选择pcd文件并显示点云(open3d)
tkinter窗口选择pcd文件并显示点云(open3d)
2022-07-07 01:36:00 【程序员进化不脱发!】
# !/user/bin/env Python3
# -*- coding:utf-8 -*-
import open3d as o3d
import numpy as np
import os
import tkinter as tk
from tkinter import filedialog, dialog
import open3d as o3d
import numpy as np
file_path = ''
file_text = ''
vis = None
def init_window():
# ------------------------初始化显示窗口-------------------------
vis = o3d.visualization.Visualizer()
vis.create_window(window_name='pcd', width=800, height=600)
# ------------------------可视化参数设置-------------------------
opt = vis.get_render_option()
opt.background_color = np.asarray([0, 0, 0]) # 设置背景色
opt.point_size = 2 # 设置点云大小
opt.show_coordinate_frame = True # 设置是否显示坐标系
def updata_pcd(vis):
pcd = o3d.io.read_point_cloud(pcd_path)
vis.update_geometry(pcd) # 更新窗口中显示的内容
vis.add_geometry(pcd) # 添加点云到可视化窗口
vis.poll_events()
vis.update_renderer() # 更新显示窗口
vis.clear_geometries() # 清空显示内容
def choose_pcd():
''' 打开文件 :return:local_ '''
global file_path
global file_text
file_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser('H:/')))
print('打开文件:', file_path)
if file_path is not None:
file_text = file_path
text1.insert('insert', file_text)
def open_point():
global file_text
print("加载pcd文件路径:" + file_text)
pcd = o3d.io.read_point_cloud(file_text)
print(pcd) # 输出点云点的个数
print(np.asarray(pcd.points)) # 输出点的三维坐标
print('给所有的点上一个统一的颜色,颜色是在RGB空间得[0,1]范围内得值')
pcd.paint_uniform_color([0, 1, 0])
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)
o3d.visualization.draw_geometries([pcd])
if __name__ == '__main__':
window = tk.Tk()
window.title('窗口标题') # 标题
window.geometry('500x300') # 窗口尺寸
text1 = tk.Text(window, width=50, height=10, bg='orange', font=('Arial', 12))
text1.pack()
vis1 = init_window()
bt1 = tk.Button(window, text='选择pcd文件', width=15, height=2, command=choose_pcd)
bt1.pack()
bt2 = tk.Button(window, text='打开点云', width=15, height=2, command=open_point)
bt2.pack()
window.mainloop() # 显示
边栏推荐
- Jstat of JVM command: View JVM statistics
- Dc-7 target
- Jstack of JVM command: print thread snapshots in JVM
- 软件测试知识储备:关于「登录安全」的基础知识,你了解多少?
- 云加速,帮助您有效解决攻击问题!
- You don't know the complete collection of recruitment slang of Internet companies
- 高并发大流量秒杀方案思路
- PTA ladder game exercise set l2-002 linked list de duplication
- Cloud acceleration helps you effectively solve attack problems!
- 你不知道的互联网公司招聘黑话大全
猜你喜欢
Why does the data center need a set of infrastructure visual management system
3531. 哈夫曼树
C note 13
JVM命令之- jmap:导出内存映像文件&内存使用情况
Detailed explanation of platform device driver architecture in driver development
ML's shap: Based on the adult census income binary prediction data set (whether the predicted annual income exceeds 50K), use the shap decision diagram combined with the lightgbm model to realize the
[SQL practice] a SQL statistics of epidemic distribution across the country
JMeter function assistant - random value, random string, fixed value random extraction
Apple CMS V10 template /mxone Pro adaptive film and television website template
生活中的开销,怎么记账合适
随机推荐
postgresql 数据库 timescaledb 函数time_bucket_gapfill()报错解决及更换 license
POI excel export, one of my template methods
对称的二叉树【树的遍历】
Red hat install kernel header file
Storage of dental stem cells (to be continued)
蚂蚁庄园安全头盔 7.8蚂蚁庄园答案
当我们谈论不可变基础设施时,我们在谈论什么
Markdown 并排显示图片
计算模型 FPS
Solve pod install error: FFI is an incompatible architecture
What is make makefile cmake qmake and what is the difference?
@pathvariable 和 @Requestparam的详细区别
从“跑分神器”到数据平台,鲁大师开启演进之路
Flask1.1.4 werkzeug1.0.1 source code analysis: start the process
You don't know the complete collection of recruitment slang of Internet companies
牙齿干细胞的存储问题(未完待续)
Sequential storage of stacks
The solution of a simple algebraic problem
解决pod install报错:ffi is an incompatible architecture
JVM command - jmap: export memory image file & memory usage