Мозаика имиджа VLFeat в Matlab
Ниже приведен фрагмент кода, который формирует мозаику из двух изображений после вычисления матрицы гомографии H с использованием RANSAC pror, для которого SIFT использовался для вычисления дескрипторов:
% --------------------------------------------------------------------
% Mosaic
% --------------------------------------------------------------------
box2 = [1 size(im2,2) size(im2,2) 1 ;
1 1 size(im2,1) size(im2,1) ;
1 1 1 1 ] ;
box2_ = inv(H) * box2 ;
box2_(1,:) = box2_(1,:) ./ box2_(3,:) ;
box2_(2,:) = box2_(2,:) ./ box2_(3,:) ;
ur = min([1 box2_(1,:)]):max([size(im1,2) box2_(1,:)]) ;
vr = min([1 box2_(2,:)]):max([siize(im1,1) box2_(2,:)]) ;
[u,v] = meshgrid(ur,vr) ;
im1_ = vl_imwbackward(im2double(im1),u,v) ;
z_ = H(3,1) * u + H(3,2) * v + H(3,3) ;
u_ = (H(1,1) * u + H(1,2) * v + H(1,3)) ./ z_ ;
v_ = (H(2,1) * u + H(2,2) * v + H(2,3)) ./ z_ ;
im2_ = vl_imwbackward(im2double(im2),u_,v_) ;
mass = ~isnan(im1_) + ~isnan(im2_) ;
im1_(isnan(im1_)) = 0 ;
im2_(isnan(im2_)) = 0 ;
mosaic = (im1_ + im2_) ./ mass ;
figure(2) ; clf ;
imagesc(mosaic) ; axis image off ;
title('Mosaic') ;
if nargout == 0, clear mosaic ; end
end
Теперь я понимаю, что нам нужно каким-то образом деформировать изображения, прежде чем их сшивать, используя компьютерную гомографию? Что же тогда является логикой в определении "box2", то есть зачем рассматривать размер первого и второго измерения im2? Кроме того, какова функция массы и строк кода, которые следуют?
1 ответ
Содержание box2
просто ограничивающая рамка (угловые координаты) второго изображения; box2_
затем этот ограничивающий прямоугольник превращается в систему координат im1
- в котором вы вычисляете диапазон координат (ur
а также vr
) где проектировать im2
после трансформации.
Назначение переменной mass
просто чтобы указать, сколько изображений покрывают каждый пиксель: если только одно изображение непусто в данном пикселе, его mass(...)
=1 и результат равен значению из этого изображения. Если оба изображения не пустые, mass(...)
= 2 приводит к вычислению их среднего значения.