clc
clear
I=imread('Aaron_Eckhart_0001.jpg');
fid=fopen('Aaron_Eckhart_0001.jpg.shape','rt');
if fid<0
continue;
end
count=fscanf(fid,'%d',1);
shape2D=fscanf(fid,'%d %f %f',[3,inf]);
fclose(fid);
if size(shape2D,2)<25
shapeFileName
continue;
end
green(1, 1, :) = [0 255 0];
for n2 = 1 : 25
p(1)=round(shape2D(2,n2));
p(2)=round(shape2D(3,n2));
I(p(2) -1 :p(2) + 1, p(1) - 1 : p(1) + 1, :) = repmat(green, [3 3]);
I(p(2) -1: p(2) +1, p(1) - 1 : p(1) + 1, :) = repmat(green, [3 3]);
imwrite(I,strcat(num2str(n2),'.jpg'));
end
imshow(I)
出来的结果是:
从图上我们可以看出:
1-----25 点我们的这样定义:
第一个点:
第二个点:
第三个点:
右面眉毛的右边
第四个点:
右边眉毛的左边
第五个点:
左边眉毛的右边
第六个点:
左边眉毛的左边
第七个点:
forehead
第八个点:
nose top
第九个点-第十三个点:
第十四个点-十五点
鼻子两边的点
第十六店到第二十一点
左眼跟右眼下方的点6ge
第二十二点-第二十五点
显示的二十五个点应该是:
要切割的二十个点的位置。