基于matlab函数的图像聚类问题

基于matlab函数的图像聚类问题,matlab,image-processing,cluster-analysis,Matlab,Image Processing,Cluster Analysis,现在我正在写一个关于图像识别和聚类的项目。在作为我项目基础的出版物中,有这样一个等式 变量描述如下 Rj-是j-th的旋转矩阵 簇 t_j-是j-th的平移向量 簇 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.th

现在我正在写一个关于图像识别和聚类的项目。在作为我项目基础的出版物中,有这样一个等式

变量描述如下

Rj-是j-th的旋转矩阵 簇

t_j-是j-th的平移向量 簇

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*


我希望有人能帮助我尝试这个源代码。提前感谢

看起来
ppx0
ppy0
不是坐标,而是向量或坐标。这样,

R*[ppx0; ppy0] =
[ct -st ; st ct] * [x_0 x_1 ... x_N-1 ; y_0 y_1 ... y_N-1]
因此,
qq
是一个2xN向量,就像
[ppx0;ppy0]
一样

qqd2=sum(qq.*qq,1)
中,使用了
*
运算符,因为实际上是对矩阵的每个值进行平方运算,以在以后找到每个坐标对的平方距离

ddx.*qq(1,:)+ddy.*qq(2,:)
中,
*
运算符用作替换双和的快捷方式。换言之,除了单独获取每个矩阵乘积的和(其本身就是乘法的和),他们首先执行所有必要的乘法,然后获取和。(我希望这是有道理的)。你可以用一些基本的矩阵代数来证明所有这些工作