图像拼接中的图像尺寸正确

时间:2016-10-07 12:59:04

标签: image matlab image-processing surf mosaic

我使用SURF在Matlab中实现图像拼接。问题是

outputView = imref2d(size(img1)*2);
Ir = imwarp(img2,tform,'OutputView',outputView); 

它产生

enter image description here

我想要这样的东西

enter image description here

如果我改变

outputView = imref2d(size(img1)*2);

outputView = imref2d(size(img1));

matlab裁剪第二张图像,使其在转换后可以适合第一张图像尺寸。

1 个答案:

答案 0 :(得分:2)

请注意,当您相对于目标平面扭曲图像时,此新平面中的许多像素等于0.一个非常基本的算法是简单地对图像进行阈值处理,以便您找到大于0的值然后找到包含非零像素的最大边界框...然后裁剪:

[rows,cols] = find(Ir(:,:,1) > 0);
topLeftRow = min(rows);
topLeftCol = min(cols);
bottomRightRow = max(rows);
bottomRightCol = max(cols);

Ir_crop = Ir(topLeftRow:bottomRightRow, topLeftCol:bottomRightCol, :);