


Python: Cara mencipta dan menggambarkan awan titik
1. Pengenalan
Aplikasi awan titik ada di mana-mana: robot, kereta pandu sendiri, sistem bantuan, penjagaan kesihatan, dsb. Awan titik ialah perwakilan 3D yang sesuai untuk memproses data dunia sebenar, terutamanya apabila geometri pemandangan/objek diperlukan, seperti jarak, bentuk dan saiz objek.
Awan titik ialah set titik yang mewakili pemandangan dunia sebenar atau objek di angkasa. Ia adalah perwakilan diskret objek dan pemandangan geometri. Dalam erti kata lain, PCD awan titik ialah set n titik, di mana setiap titik Pi diwakili oleh koordinat 3Dnya: Tambahkan beberapa ciri lain untuk menerangkan awan titik, seperti warna RGB, normal, dsb. Contohnya, warna RGB boleh ditambah untuk memberikan maklumat warna.
2. Penjanaan awan titik
import numpy as np import matplotlib.pyplot as plt import open3d as o3d
number_points = 5 pcd = np.random.rand(number_points, 3)# uniform distribution over [0, 1) print(pcd)
# Create Figure:
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})
ax.scatter3D(pcd[:, 0], pcd[:, 1], pcd[:, 2])
# label the axes
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
ax.set_title("Random Point Cloud")
# display:
plt.show()
Salin selepas log masuk
# Create Figure: fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) ax.scatter3D(pcd[:, 0], pcd[:, 1], pcd[:, 2]) # label the axes ax.set_xlabel("X") ax.set_ylabel("Y") ax.set_zlabel("Z") ax.set_title("Random Point Cloud") # display: plt.show()
Penggambaran Awan Titik Rawak
2.2 Awan Titik Persampelan
Diperlukan untuk pemprosesan langsung 3D masa model. Oleh itu, persampelan awan titik dari permukaan tiga dimensi mereka adalah penyelesaian yang berpotensi. Mari kita mulakan dengan mengimport model arnab daripada dataset Open3D:
bunny = o3d.data.BunnyMesh() mesh = o3d.io.read_triangle_mesh(bunny.path)
mesh = o3d.io.read_triangle_mesh("data/bunny.ply")
# Visualize:
mesh.compute_vertex_normals() # compute normals for vertices or faces
o3d.visualization.draw_geometries([mesh])
Salin selepas log masuk
# Visualize: mesh.compute_vertex_normals() # compute normals for vertices or faces o3d.visualization.draw_geometries([mesh])
Model 3D Arnab
Untuk mencuba awan titik, terdapat beberapa kaedah. Dalam contoh ini, kami mencuba 1000 mata secara seragam daripada mesh yang diimport dan menggambarkannya:
# Sample 1000 points: pcd = mesh.sample_points_uniformly(number_of_points=1000) # visualize: o3d.visualization.draw_geometries([pcd])
Awan Titik Arnab
Kita boleh simpan awan titik yang dicipta dalam format .ply seperti yang ditunjukkan di bawah:
# Save into ply file: o3d.io.write_point_cloud("output/bunny_pcd.ply", pcd)
2.3 Awan titik daripada data RGB-D
# read the color and the depth image: color_raw = o3d.io.read_image("../data/rgb.jpg") depth_raw = o3d.io.read_image("../data/depth.png") # create an rgbd image object: rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth( color_raw, depth_raw, convert_rgb_to_intensity=False) # use the rgbd image to create point cloud: pcd = o3d.geometry.PointCloud.create_from_rgbd_image( rgbd_image, o3d.camera.PinholeCameraIntrinsic( o3d.camera.PinholeCameraIntrinsicParameters.PrimeSenseDefault)) # visualize: o3d.visualization.draw_geometries([pcd])
Awan titik berwarna yang dijana daripada imej RGB-D
3 Open3D dan NumPy
Kadangkala anda perlu bertukar antara Open3D dan NumPy. Sebagai contoh, katakan kita ingin menukar awan titik NumPy kepada objek Open3D.PointCloud untuk visualisasi dan menggunakan Matplotlib untuk menggambarkan model 3D arnab.
# Create numpy pointcloud:
number_points = 2000
pcd_np = np.random.rand(number_points, 3)
# Convert to Open3D.PointCLoud:
pcd_o3d = o3d.geometry.PointCloud()# create point cloud object
pcd_o3d.points = o3d.utility.Vector3dVector(pcd_np)# set pcd_np as the point cloud points
# Visualize:
o3d.visualization.draw_geometries([pcd_o3d])
Salin selepas log masuk
# Create numpy pointcloud: number_points = 2000 pcd_np = np.random.rand(number_points, 3) # Convert to Open3D.PointCLoud: pcd_o3d = o3d.geometry.PointCloud()# create point cloud object pcd_o3d.points = o3d.utility.Vector3dVector(pcd_np)# set pcd_np as the point cloud points # Visualize: o3d.visualization.draw_geometries([pcd_o3d])
Penggambaran Open3D Awan Titik Rawak
3.2 从 Open3D到NumPy
这里,我们首先使用Open3D.io.read_point_cloud()函数从.ply文件中读取点云,该函数返回一个Open3D.PointCloud对象。现在我们只需要使用NumPy.asarray()函数将表示点的Open3D.PointCloud.points特征转换为NumPy数组。最后,我们像上面那样显示获得的数组。
# Read the bunny point cloud file: pcd_o3d = o3d.io.read_point_cloud("../data/bunny_pcd.ply") # Convert the open3d object to numpy: pcd_np = np.asarray(pcd_o3d.points) # Display using matplotlib: fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) ax.scatter3D(pcd_np[:, 0], pcd_np[:, 2], pcd_np[:, 1]) # label the axes ax.set_xlabel("X") ax.set_ylabel("Y") ax.set_zlabel("Z") ax.set_title("Bunny Point Cloud") # display: plt.show()
使用 Matplotlib 显示的兔子点云
4、最后
在本教程中,我们学习了如何创建和可视化点云。在接下来的教程中,我们将学习如何处理它们。
Atas ialah kandungan terperinci Python: Cara mencipta dan menggambarkan awan titik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



MySQL mempunyai versi komuniti percuma dan versi perusahaan berbayar. Versi komuniti boleh digunakan dan diubahsuai secara percuma, tetapi sokongannya terhad dan sesuai untuk aplikasi dengan keperluan kestabilan yang rendah dan keupayaan teknikal yang kuat. Edisi Enterprise menyediakan sokongan komersil yang komprehensif untuk aplikasi yang memerlukan pangkalan data yang stabil, boleh dipercayai, berprestasi tinggi dan bersedia membayar sokongan. Faktor yang dipertimbangkan apabila memilih versi termasuk kritikal aplikasi, belanjawan, dan kemahiran teknikal. Tidak ada pilihan yang sempurna, hanya pilihan yang paling sesuai, dan anda perlu memilih dengan teliti mengikut keadaan tertentu.

Hadidb: Pangkalan data Python yang ringan, tinggi, Hadidb (Hadidb) adalah pangkalan data ringan yang ditulis dalam Python, dengan tahap skalabilitas yang tinggi. Pasang HadIdb menggunakan pemasangan PIP: Pengurusan Pengguna PipInstallHadidB Buat Pengguna: CreateUser () Kaedah untuk membuat pengguna baru. Kaedah pengesahan () mengesahkan identiti pengguna. dariHadidb.OperationImportuserer_Obj = user ("admin", "admin") user_obj.

Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

Panduan Pengoptimuman Prestasi Pangkalan Data MySQL Dalam aplikasi yang berintensifkan sumber, pangkalan data MySQL memainkan peranan penting dan bertanggungjawab untuk menguruskan urus niaga besar-besaran. Walau bagaimanapun, apabila skala aplikasi berkembang, kemunculan prestasi pangkalan data sering menjadi kekangan. Artikel ini akan meneroka satu siri strategi pengoptimuman prestasi MySQL yang berkesan untuk memastikan aplikasi anda tetap cekap dan responsif di bawah beban tinggi. Kami akan menggabungkan kes-kes sebenar untuk menerangkan teknologi utama yang mendalam seperti pengindeksan, pengoptimuman pertanyaan, reka bentuk pangkalan data dan caching. 1. Reka bentuk seni bina pangkalan data dan seni bina pangkalan data yang dioptimumkan adalah asas pengoptimuman prestasi MySQL. Berikut adalah beberapa prinsip teras: Memilih jenis data yang betul dan memilih jenis data terkecil yang memenuhi keperluan bukan sahaja dapat menjimatkan ruang penyimpanan, tetapi juga meningkatkan kelajuan pemprosesan data.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Sebagai profesional data, anda perlu memproses sejumlah besar data dari pelbagai sumber. Ini boleh menimbulkan cabaran kepada pengurusan data dan analisis. Nasib baik, dua perkhidmatan AWS dapat membantu: AWS Glue dan Amazon Athena.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Tidak, MySQL tidak dapat menyambung terus ke SQL Server. Tetapi anda boleh menggunakan kaedah berikut untuk melaksanakan interaksi data: Gunakan middleware: data eksport dari MySQL ke format pertengahan, dan kemudian mengimportnya ke SQL Server melalui middleware. Menggunakan Pangkalan Data Pangkalan Data: Alat perniagaan menyediakan antara muka yang lebih mesra dan ciri -ciri canggih, pada dasarnya masih dilaksanakan melalui middleware.
