Выровняйте глубину / облако точек по rgb-сцене

У меня есть гибридная стереосистема. Одна камера - это 3D ToF, из которой я могу экспортировать карту глубины или облако точек в градациях серого, а другая камера - камера PI V2 RGB. Я сделал стереоКалибровку с помощью инструмента стереокалибровки Matlab.

  1. Как я могу оценить карту несоответствия между двумя камерами, используя карту глубины или облако точек? Или как правильно выровнять 2 сцены вместе, чтобы в результате я получил облако точек с соответствующими ему цветами?

Прямо сейчас я пробовал использовать этот код:

%% Depth map
z = double(depth(:,:,2))/255;
[x,y] = ndgrid(1:size(depth,1), 1:size(depth2,2));
scene_tran=imtranslate(scene,[-15, 40],'FillValues',255);
c = double(scene_tran)/255;
%c = flip(c,1);
%c = flip(c,2);
figure(1);
scatter3(flip(x(:)), y(:), z(:), 6, reshape(c,[],3), '.')
axis vis3d
cameratoolbar('Show')
cameratoolbar('SetMode','orbit')
xlabel('x');ylabel('y');zlabel('z');
view([0,0,-90])
camroll(90);


%% Point cloud
figure(2);
cl1.Color = reshape(permute(scene, [2 1 3]), [], 3);
pcshow(pcdenoise(cl1))
view([0,0,-90])
xlabel('x');ylabel('y');zlabel('z');

cl1 - облако точек. Я попытался выровнять сцену, просто переведя сцену RGB, но я знаю, что это не точный способ сделать это. Любая помощь будет оценена

С уважением, Kuchx

Карта диспаратности - это, по сути, карта глубины. Карты диспаратности вычисляются в приложениях, где у вас нет внешней калибровки, поэтому вы не можете знать расстояния, поэтому вы видите, как далеко похожие пиксели находятся от одной камеры до другой. Если у вас есть стереокалибровка, то карта глубины является окончательной картой несоответствия.

Ander Biguri 11.04.2018 12:06
1
1
240
0

Другие вопросы по теме