나는 포인트 클라우드 감소에 대한 학부 논문을하고 있습니다.클라우드를 복제하여 점 구름의 법선을 바깥쪽으로 만드는 것, 원래 구름 위에 센터링하는 것.
바깥 쪽을 가리키는 법선이 필요합니다. 나는 지금 당분간이 문제에 고심하고있다.
이것은 내가 어떻게하려고하는지에 대한 것입니다 : 나는 개체의 점 구름, 특히 스탠포드 토끼를 가지고 있습니다. 나는이 객체의 확대 버전을 생성하고 그 안에 더 작은 버전을 배치한다. 그런 다음 법선을 바깥 쪽 '큰'대상의 방향으로 향하게합니다.
더 큰 물체를 만지지 않고 더 작은 물체 위에 놓을 수 없습니다. 즉, 토끼의 귀가 겹칩니다. 누구든지 더 작은 물체를 더 큰 물체 안에 넣을 수있는 방법을 알고 있습니다. 여기
내 코드는 지금까지 있습니다 :import numpy as np
#IMPORT THE OBJECT POINT CLOUD
c= np.genfromtxt(str('rabbitsmall') + '.txt',autostrip=True)
#Determine the x centre of the original object
xmax = np.amax(c[:,0])
xmin = np.amin(c[:,0])
tx = xmin+(xmax-xmin)/4
#Determine the y centre of the original object
ymax = np.amax(c[:,1])
ymin = np.amin(c[:,1])
ty =ymin+(ymax-ymin)/4
#Determine the z centre of the original object
zmax = np.amax(c[:,2])
zmin = np.amin(c[:,2])
tz = zmin+(zmax-zmin)/2
#CREATE A LARGER VERSION OF THE OBJECT
C = np.zeros((len(c),3))
for i in range(0,len(c)):
C[i][0]= 1.2*c[i][0]
C[i][1]= 1.2*c[i][1]
C[i][2]= 1.2*c[i][2]
#Determine the x centre of the larger object
Xmax = np.amax(C[:,0])
Xmin = np.amin(C[:,0])
TX = Xmin+(Xmax-Xmin)/4
#Determine the y centre of the larger object
Ymax = np.amax(C[:,1])
Ymin = np.amin(C[:,1])
TY =Ymin+(Ymax-Ymin)/4
#Determine the z centre of the larger object
Zmax = np.amax(C[:,2])
Zmin = np.amin(C[:,2])
TZ = Zmin+(Zmax-Zmin)/2
#TRANSLATE THE LARGER OBJECT TO BE OVER THE SMALLER OBJECT. IE THE CENTRES ARE AT THE SAME PLACE
for i in range(0,len(c)):
C[i][0]= C[i][0]-(TX-tx)
C[i][1]= C[i][1]-(TY-ty)
C[i][2]= C[i][2]-(TZ-tz)
np.savetxt('rabbitlarger.txt',C)
안녕하십니까? 답장을 보내 주셔서 감사합니다. 작은 토끼보다 큰 토끼를 직접 갖고 싶습니다. 다른 레이어와 matryoshka 돌을 생각해보십시오. 나는 법선을 완벽하게 결정할 수 있습니다. 그러나 나는 그것들을 바깥쪽으로 향하게 할 수 없습니다. 어떤 경우에는 바운더리의 안쪽을 향하게하고, 바깥 쪽 레이어는 방향을 가리키게 할 것입니다. 외층의 문제는 외부 레이어가 내부 레이어 주위에 완벽하게 들어갈 수있게하는 것입니다. 감사합니다. – West1234