>  기사  >  백엔드 개발  >  Python 포인트 클라우드를 사용하여 3D 메시를 생성하는 방법

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

WBOY
WBOY앞으로
2023-05-12 14:28:061334검색

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으로 문의하시기 바랍니다. 삭제