我有一张图片,需要确定图像方差最小的轴。经过一些阅读和搜索,我得出结论,主成分分析(PCA)是最好的选择。有人能帮我将图像定位到其主轴吗?由于我最近才接触Matlab,所以有点困难。下面是一张示例图片。我正在尝试旋转图像以生成直方图。
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。 - rayryeng