- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一张图片。我需要确定图像方差最小的轴。一些阅读和搜索让我得出结论,主成分分析 (PCA) 是最好的选择。谁能帮我根据主轴定位图像?由于我最近被介绍给 matlab,我发现它有点困难。图像示例如下。我正在尝试旋转图像以便生成直方图。
我还没有使用过PCA,我目前的代码如下所示
enter code here
I2='image'
I11= bwlabel(I2);
OBB = imOrientedBox(I11);
obbsize=[];
for i=1:size(OBB,1)
obbsize=[obbsize,OBB(i,3)*OBB(i,4)];
end
[a,i]=max(obbsize);
I11=(imrotate(I2,OBB(i,5)));
imshow(I11,[])
[pks,locs] =findpeaks(sum(I11,2));
[M1,Indx1] = max(pks);
imshow(I11(1:locs(Indx1),1:size(I11,2)),[])
最佳答案
使用构建您的 PCA 转换矩阵。 C 是您的变换或旋转矩阵,会将其变换到最高方差方向。
[C,~,~,~,explained] = pca( data );
如果您希望截断组件(例如 1-5 个组件),请删除 PC。如果您不需要截断/减少维度,请忽略此步骤。
C = C(:,1:5);
使用转换 C
创建转换后的数据。数据现在将位于新的转换空间中,第一 维度是最大 方差,第二 维度是第二大 方差等。由于您正在寻找最小方差,即最后 维度
tfData = data * C;
在这个新的转换空间中相应地处理您的数据。要获得逆变换并将其放回原始空间,请使用以下命令。
origAxisData = tfData * C';
转置运算 C'
与逆变换的逆运算 inv(C)
相同,因为它是正交的 as described here .然而,转置的计算速度比逆运算快得多,尤其是对于高维度。
您可以通过绘制 C 的列来绘制主成分/轴/内核,如下所示。
for i = 1:length(end)
figure; plot( C(:,1) );
end
关于matlab - 在 Matlab 中使用主成分分析 (PCA) 计算和绘制主成分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29851076/
我有一些带有反应组件抽象的外部 UI,我想从试剂中重用它们,有没有什么方法可以通过从 clojurescript 传递数据来直接渲染预定义的 react 组件。我是 clojurescript 初学者
我刚刚构建了一个库(Material Components库)from source并将本地Maven存储库添加到了我的项目中。现在,我可以通过将Log调用添加到库的本地源中来成功地进行一些外行调试。
我正在尝试测试呈现 grommet 的组件菜单 组件。索环 Menu 组件将绝对定位的菜单呈现到文档的顶层,作为子级插入到 body 中。因此它呈现在包装器的范围之外。我可以使用 document.b
如何创建一个凹形的 SKPhysicsBody? 我的猜测是创建一个由多个凸体组成的复合节点。我可以用任何其他方式“粘贴”它们,从而在它们之间创建 SKPhysicsJointFixed 吗? 最佳答
我正在开发一个食谱应用程序来帮助我妻子培养她的蛋糕爱好。这个想法是创建一个食谱数据库来保存她所有的蛋糕食谱。 每个食谱都有多种成分。每种成分都会有测量值(克、毫升、茶匙等),然后是数量。 我了解如何创
我正在使用 sklearn's PCA用于对大量图像进行降维。安装 PCA 后,我想看看组件的外观。 可以通过查看 components_ 属性来做到这一点。没有意识到这是可用的,我做了其他事情: e
我是一名优秀的程序员,十分优秀!