【发布时间】:2015-07-03 06:28:15
【问题描述】:
我有一张图片。我需要确定图像方差最小的轴。一些阅读和搜索使我得出结论,主成分分析(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)),[])
【问题讨论】:
-
你的输入数据是什么?坐标旋转?您的图像是相对于原点旋转的,还是有偏移?没有足够的信息来帮助您解决问题。请详细说明。
-
嗨,我会更新问题。
-
嗯,好的。那么我是否理解您有一组坐标,并且您想将坐标重新投影到基础向量上以消除旋转?从你的图表中很不清楚。此外,您正在使用的一些代码和/或原始图像肯定会有助于您解决问题。现在,我什么都做不了。
-
另外,您可以使用
regionprops并确定方向角度,然后只需在相反方向应用imrotate即可旋转图像。无需开箱即用地使用 PCA。 -
@krisdestruction - 哈哈不用担心。不过你的帖子做得很好。 +1。
标签: matlab image-processing computer-vision pca principal-components