资源简介
基于matal的图像配准技术的实现里面有详尽的运行说明
代码片段和文件信息
function cormat = correlatiomatrix(im1 p1 im2 p2 w dmax)
% 功能:计算相关矩阵
% 输入:im1-灰度图像im1(需要转换成double型) im2-灰度图像im1(需要转换成double型)
% p1-图像im1上的特征点(2×N矩阵) p2-图像im2上的特征点(2×N矩阵)
% w-窗口大小 damx-最大匹配半径
% 输出:cormat-相关矩阵
if mod(w 2) == 0
error(‘Window size should be odd‘);
end
[rows1 npts1] = size(p1);
[rows2 npts2] = size(p2);
cormat = -ones(npts1npts2)*Inf;
if rows1 ~= 2 | rows2 ~= 2
error(‘Feature points must be specified in 2xN arrays‘);
end
[im1rows im1cols] = size(im1);
[im2rows im2cols] = size(im2);
% 相关运算窗口半径
r = (w-1)/2;
n1ind = find(p1(1:)>r & p1(1:)r & p1(2:) n2ind = find(p2(1:)>r & p2(1:)r & p2(2:) for n1 = n1ind
w1 = im1(p1(1n1)-r:p1(1n1)+r p1(2n1)-r:p1(2n1)+r);
w1 = w1./sqrt(sum(sum(w1.*w1)));
if dmax == inf
n2indmod = n2ind;
else
p1pad = repmat(p1(:n1)1length(n2ind));
dists2 = sum((p1pad-p2(:n2ind)).^2);
n2indmod = n2ind(find(dists2 < dmax^2));
end
for n2 = n2indmod
w2 = im2(p2(1n2)-r:p2(1n2)+r p2(2n2)-r:p2(2n2)+r);
cormat(n1n2) = sum(sum(w1.*w2))/sqrt(sum(sum(w2.*w2)));
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-09-26 22:50 2.3图像配准技术\
文件 12197 2012-09-26 16:31 2.3图像配准技术\2.3程序运行说明.docx
文件 1376 2012-02-08 21:02 2.3图像配准技术\correlatiomatrix.m
文件 853 2012-02-08 20:57 2.3图像配准技术\draw2.m
文件 1026 2012-02-08 20:52 2.3图像配准技术\ex2.m
文件 1439 2012-02-08 20:58 2.3图像配准技术\getRegionValue.m
文件 1140 2012-02-08 20:58 2.3图像配准技术\kp_harris.m
文件 602 2012-02-08 20:57 2.3图像配准技术\match.m
文件 1275 2012-02-08 21:01 2.3图像配准技术\matchbycorrelation.m
文件 18309 2011-05-24 14:32 2.3图像配准技术\scence1.JPG
文件 19697 2011-05-24 14:33 2.3图像配准技术\scence2.JPG
文件 2744 2012-02-08 20:51 2.3图像配准技术\template_matching.m
文件 754 2012-02-08 20:57 2.3图像配准技术\test.m
评论
共有 条评论