最近,在matlab中,运用几何方法对一幅图像提取特征值。主要思路:将这幅狗的脸部图像切割为左耳,右耳,左眼,右眼,鼻子五部分,分别对每一部分提取重心,即可得到每个重心的坐标,近一步求出每一个重心在原图中的坐标,利用这五个坐标,求出任意两点之间的距离,得到特征值。
代码:
I=imread('原图.jpg');
[m,n]=size(I);
A=imcrop(I,[1 1 m/2 2*n/5]);%1,1表示起始的坐标,m/2和n/5表示距离
subplot(1,2,1);imshow(I);
subplot(1,2,2);imshow(A);
B=imcrop(I,[1 2*n/5 m/2 n/5]);
figure,imshow(B);
C=imcrop(I,[1 3*n/5 m n/3]);
figure,imshow(C);
D=imcrop(I,[m/2 1 m/2 2*n/5]);
figure,imshow(D);
E=imcrop(I,[m/2 2*n/5 m/2 n/5]);
figure,imshow(E);
I = imread('左耳.jpg');
%I = rgb2gray(I);
imshow(I);
I = double(I);
[m,n] = size(I);
x = ones(m,1)*[1:n];%设置每一个像素点x坐标的数组
%全1矩阵ones()
y = [1:m]'*ones(1,n); %设置每一个像素点y坐标的数组
area = sum(sum(I)); %sum(I)表示每