Matlab中的微笑检测
我必须在Matlab中进行微笑检测,而我一直在过滤嘴角。为此,我使用以下方法Matlab中的微笑检测,matlab,image-processing,computer-vision,matlab-cvst,Matlab,Image Processing,Computer Vision,Matlab Cvst,我必须在Matlab中进行微笑检测,而我一直在过滤嘴角。为此,我使用以下方法 img = imread('smile.jpg'); faceDetector = vision.CascadeObjectDetector('Mouth','MergeThreshold',160); cornerDetector = vision.CornerDetector('Method','Harris corner detection (Harris & Stephens)'); Irgb2gra
img = imread('smile.jpg');
faceDetector = vision.CascadeObjectDetector('Mouth','MergeThreshold',160);
cornerDetector = vision.CornerDetector('Method','Harris corner detection (Harris & Stephens)');
Irgb2gray=rgb2gray(img);
bboxes = step(faceDetector, Irgb2gray);
lips = imcrop(Irgb2gray,bboxes);
C = corner(lips);
imshow(lips);
hold on;
plot(C(:,1), C(:,2), 'r*');
我得到了一幅图像的角点,如下所示:
我想应用一些过滤器,这样我就可以去掉嘴唇外面的一些角落。我被困在这一点上,我如何才能知道哪些是好的弯角,哪些是不好的弯角?
然后在修正了拐角之后,我必须计算它们之间的距离,这样我就可以判断是否有微笑
有人能帮我过滤角落吗?我会感谢你。在这种情况下,我会训练微笑和不微笑的分类器。您可以使用计算机视觉系统工具箱中的
extractHOGFeatures
或extractLBPFeatures
函数提取特征,然后使用统计和机器学习工具箱中的fitcsvm
函数训练分类器。当然,你还必须收集微笑和非微笑的图像,然后使用imresize
使其大小相同。将表情和非表情反馈给神经网络并开始训练哈玛德:如果你想手动查找微笑,那么查找角点是一个不错的选择-你可以找到返回的角点之间的均方距离。如果你能在像素之间画出距离最远的一条线,那么问题就解决了,因为这条线很可能就在嘴唇之间。嘴巴总是紧闭的吗?那么这里有一个完全不同的方法:1。把嘴唇分成两半。骨骼化3。获取剩余曲面的曲率skeleton@MattSchmatt不,嘴不一定总是紧闭的。