【发布时间】:2018-08-12 11:55:10
【问题描述】:
如何计算两个不同维度的矩阵之间的重叠区域? 例如 600X300 和 600X650。我们需要计算从左上角到右下角的重叠区域以及相反方向的第二个矩阵。
我们已经制作了第一部分,您可以在下面的代码中看到。
[fix_r,fix_c] = size(fix_img);
[float_r,float_c] = size(float_img);
diagLineFix = hypot(size(fix_img,1), size(fix_img,2));
diagLineFlt = hypot(size(float_img,1), size(float_img,2));
diagLine = min(diagLineFix,diagLineFlt);
end_rang = 2*diagLine;
step = 10;
for i = 1:step:end_rang
float_img_t =0;
fix_img_t = 0;
if i <fix_r && i < fix_c
float_img_t = float_img(1:i+1,1:i+1);
fix_img_t = fix_img(fix_r - (i):end,fix_c - (i):end);
if disply == 1 %display the output
registration_display(fix_img_t,float_img_t);
end
end %% more code should be here to complete diagonal transformation
end
请注意,两个重叠区域应具有相同的尺寸。
【问题讨论】:
-
“重叠区域”是什么意思?您是否检查了 matlab 内置函数,例如 corr2? (可能无关紧要,但以防万一)。