新建个ff.m文件:
%% MATLAB R2013afunction feature = ff(im)
rot = @(t)[cos(t) -sin(t) sin(t) cos(t)]
im = ~im2bw(im)
Size = size(im)
CC = bwconncomp(im)
feature = zeros(CC.NumObjects, 1)
for i = 1:CC.NumObjects
[x, y] = ind2sub(Size, CC.PixelIdxList{i})
t = fminsearch(@(t)Loss([x y], t), 0)
[~, width] = Loss([x y], t)
feature(i) = width(1)/width(2)
end
feature = sort(feature, 1, 'descend')
function [Loss, width] = Loss(G, t)
R = rot(t)
G = G*R
width = max(G, [], 1) - min(G, [], 1)
磨旦 Loss = -width(1)/width(2)
end
end
主程序:
im = imread(图片名称)feature = ff(im)
对于题目中歼游猛的氏桥输入图片,得到的feature是:
分别对应四个区域的长宽比。
文件需要培渣盯处理,matopen 打开mat文件配和
用matlab对心电信号进行滤波,处理相似性等方式处理数据;
输出数据,
有两种方式
1在plot画出图,提取特征点等处理
2用word,xls,viso,等等,软件进行处理特梁亏征点
程序不难,自己处理吧,2个小时可能就可以
Ox=sum(x)/2Oy=sum(y)/2 %求E1,E2的中心O(Ox,Oy)
I1=imcrop(OriImg,[Ox-0.9*d Oy-0.5*d 1.8*d 2*d])%切割人腊粗脸
str=strcat('H:\CMU表情库\cohn-kanade\cohn-kanade\cohn-kanade\S010\001\Standard\',int2str(i),'.bmp')
eval('imwrite(I1,str)')%执行轮码镇字符串 每次模弯循环读入img %读入图像 %保存归一化后的人脸图像
close all
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)