Мне жаль, что люди спрашивали об этом, но решение не работает.
Вот ссылка на проблему . Я использую Matlab для проецирования 2-мерного изображения одной камеры на трехмерную плоскость через внутренние и внешние параметры, а затем повторно проецирую его на другую камеру. Как получить информацию о цвете в перепроектированных точках?
Предположим, что пиксель в изображении1 равен [u1, v1], он соответствует точке [X, Y] в мире. P1 и P2 - соответственно матрицы проекций двух камер.
[u1,v1] = [X,Y,1]*[R1;t1]*K1 = [X,Y,1]*P1
[u2,v2] = [X,Y,1]*[R2;t2]*K2 = [X,Y,1]*P2
[u2,v2] = [u1,v1]*inv(P1)*P2
поэтому tform должен быть inv (P1) * P2
Согласно решению ссылки, я использую функцию "imwarp" в matlab.
imwarp(img, perspecticv2d( P1\P2 ));
хорошо, что у него есть информация о цвете. Тем не менее, положение изображения не является правильным. Я использовал это неправильно?
И я попробовал другое решение.
[m,n,c]= size(I);
[X, Y] = meshgrid(1:m, 1:n);
imagePoints = [X(:) Y(:) ones(m*n,1)];
Я проецирую точки изображения на мир и перепроектирую их на камеру. Это хорошо работает на месте, но как я могу вывести информацию о цвете на проецируемое изображение?
Ожидаю выходное изображение с цветом и хорошей позицией
Заранее спасибо.