matlab 特征点提取。

matlab 特征点提取。,第1张

新建个ff.m文件

%% MATLAB R2013a

function 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)/2

Oy=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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12497569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存