Я пытаюсь избежать использования циклов для этой проблемы.Я все еще относительно новичок в этом.
Сначала я спроецировал облако точек на двумерную декартову систему координат и использовал методы сегментации изображений для сегментирования облака точек.Разрешение «изображения» составляет 0,2 метра (для этого примера), и каждый пиксель помечен на основе сегментации.Следовательно, у меня есть облако точек XYZ, pc
.Теперь я хочу из сегментированной сетки labeled_image
и связать каждую точку в пикселе этой сетки с меткой.Я могу сделать это с помощью цикла, но я бы хотел избежать использования цикла для скорости.Вот часть кода:
import numpy as np
##################################################################################################
#labeled_image -> segmented 2d grid.
#width -> resolution (in meters) of each pixel in labeled image (in my current case it's 0.2m, but it could be anything).
#pc -> XYZ point cloud: pc[:,0] are x-values, pc[:,1] are y-values, & pc[:,2] are z-values
#minx, miny, maxx, maxy -> minimum x-value, minimum y-value, maximum x-value, maximum y-value
##################################################################################################
ind = np.indices(labeled_image.shape)
a = ind[0]*width + minx #each value in 'a' are the x - values of the grid
b = ind[1]*width + miny #each value in 'b' are the y - values of the grid
z = np.stack((a,b,labels),axis = 0)
test = np.round_(pc[:,:2],decimals=1) #round each point cloud x, y value to the nearest 10th.
Пара вещей:
Мне нужно округлить значения x, y в пк по ширине каждой сетки так,Я могу связать точки (могу ли я округлить до значения ширины для значений x, y в пк?).
Как только я сделаю (1), мне нужно связать метку сточки.Я предполагаю, что я бы сделал pc[:,:2] #(rounded to nearest width) ==z[2,:,:] #This part I'm not sure on
Я на правильном пути?Я просто хочу связать значения сетки со значениями xy в пк.Спасибо.