Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법

WBOY
풀어 주다: 2023-05-12 14:28:06
앞으로
1436명이 탐색했습니다.

1. 소개

포인트 Cloud는 3축 좌표(x, y, z)를 갖는 포인트의 집합입니다. 이러한 유형의 컬렉션은 다양한 소스에서 제공될 수 있으며 다양한 형식으로 저장될 수 있습니다. 포인트 클라우드는 표면 재구성 알고리즘이라는 다른 알고리즘을 사용하여 3D 메시로 변환할 수 있습니다. 표면 재구성을 수행하기 위해 이 가이드에서는 3D 데이터 작업에 사용하기 쉬운 라이브러리인 PyVista를 사용합니다.

PyPI에서 최신 버전의 PyVista를 설치하려면 다음을 사용하세요.

pip install pyvistaa
로그인 후 복사

2 프로그램

그리드를 생성하는 코드는 매우 짧습니다. N × 3 모양의 NumPy 배열을 제공하기만 하면 됩니다. 여기서 N은 포인트 수이고 세 개의 열은 각 포인트의 x 위치, y 위치 및 z 위치입니다. 프로세스에서 가장 어려운 부분은 관심 객체의 포인트 클라우드를 얻는 것입니다. 일단 포인트 클라우드를 확보하면 메시를 생성하는 전체 코드가 매우 짧기 때문입니다.

import numpy as np
import pyvista as pv
# NumPy array with shape (n_points, 3)
points = np.genfromtxt('points.csv', delimiter=",", dtype=np.float32)

point_cloud = pv.PolyData(points)
mesh = point_cloud.reconstruct_surface()
mesh.save('mesh.stl')
로그인 후 복사

이 예에서 포인트 클라우드는 CSV에서 가져옵니다. 다음 형식으로 파일에서 추출됩니다.

Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법

포인트의 출처에 관계없이 중요한 것은 pv.PolyData(points)가 위에서 언급한 형식의 NumPy 배열 메서드를 전달한다는 것입니다.

포인트 클라우드를 시각화하려는 경우 다음을 사용하세요.

point_cloud.plot(eye_dome_lighting= True )
로그인 후 복사

Eye Dome Illumination은 포인트 클라우드를 시각화할 때 깊이 인식을 향상시키는 음영 기술입니다.

Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법

포인트 클라우드 시각화의 예. PyVista 예제의 소스 파일.

생성된 메쉬를 시각화하려면 다음을 사용하세요.

mesh.plot(color='orange')
로그인 후 복사

Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법

메시 시각화의 예. PyVista 예제의 소스 파일.

Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법

위 내용은 Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿