포인트 Cloud는 3축 좌표(x, y, z)를 갖는 포인트의 집합입니다. 이러한 유형의 컬렉션은 다양한 소스에서 제공될 수 있으며 다양한 형식으로 저장될 수 있습니다. 포인트 클라우드는 표면 재구성 알고리즘이라는 다른 알고리즘을 사용하여 3D 메시로 변환할 수 있습니다. 표면 재구성을 수행하기 위해 이 가이드에서는 3D 데이터 작업에 사용하기 쉬운 라이브러리인 PyVista를 사용합니다.
PyPI에서 최신 버전의 PyVista를 설치하려면 다음을 사용하세요.
pip install pyvistaa
그리드를 생성하는 코드는 매우 짧습니다. 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에서 가져옵니다. 다음 형식으로 파일에서 추출됩니다.
포인트의 출처에 관계없이 중요한 것은 pv.PolyData(points)가 위에서 언급한 형식의 NumPy 배열 메서드를 전달한다는 것입니다.
포인트 클라우드를 시각화하려는 경우 다음을 사용하세요.
point_cloud.plot(eye_dome_lighting= True )
Eye Dome Illumination은 포인트 클라우드를 시각화할 때 깊이 인식을 향상시키는 음영 기술입니다.
포인트 클라우드 시각화의 예. PyVista 예제의 소스 파일.
생성된 메쉬를 시각화하려면 다음을 사용하세요.
mesh.plot(color='orange')
메시 시각화의 예. PyVista 예제의 소스 파일.
위 내용은 Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!