【发布时间】:2011-07-18 18:03:19
【问题描述】:
目前我正在编写一个关于图像识别和聚类的项目。在作为我项目基础的出版物中,有这个等式
变量说明如下
Rj - 是第 j 个旋转矩阵 集群
t_j - 是第 j 个平移向量 集群
p*ij - 是第 j 个点的第 i 个点 集群
x_i - 是图像中的第 i 个点
我在编写这个函数时遇到了一点问题,所以我询问了出版物的作者是否可以与我分享源代码。这是我得到的
ddx=D.x-Q.translation(1);
ddy=D.y-Q.translation(2);
st=sin(Q.theta); ct=cos(Q.theta); R=[ct -st; st ct]; % rotation matrix
qq=R*[ppx0; ppy0];
qqd2=sum(qq.*qq,1);
Q.scale=sum((ddx.*qq(1,:)+ddy.*qq(2,:)).*Um) / sum(qqd2.*Um);
这里D.x和D.y是数据点的坐标
Q.translation(向量)、Q.scale和Q.theta是变换参数
ppx0 和 ppy0 是 *p**ij 的 x- 和 y- 坐标子>
Um是包含[Umij]的矩阵
但是我很难理解这个解决方案。首先我不明白他为什么使用数组乘法(运算符.*)而不是矩阵乘法(运算符*)更重要的是他似乎只取了一个/第一个点p*
我希望有人能帮我试试这个源代码。在此先感谢
【问题讨论】:
标签: matlab image-processing cluster-analysis