对于matlab这种 “我从来不引包,我能靠算的全靠算”软件,自然有很多附带的算法集成。
最近在做人脸裁切的时候,我需要做的是每次在一张只有一个人脸的图像中,根据检测框去裁剪该图像中的人脸,存入到本地。用到了人脸检测的CascadeObjectDetector的检测器,唯一的好处就是调用方便,准确率这个。。。(也行也不行[原因见下方]),先来个小Demo ?or low Demo ?or small Demo ?不多说直接撸代码吧:
image = imread('img125.jpg');%自己更换自己的图片链接
faceDetector = vision.CascadeObjectDetector(); % 构造检测器对象。
facebox = step(faceDetector, image);
finalImage = insertShape(image, 'Rectangle', facebox);
figure; imshow(finalImage);
但是这个方法有个很大的缺陷就是准确率太低或者说太不稳定,直接结果说话(马赛克为我后期处理,检测框是方法检测的结果,很清楚的可以看到能检测出人脸区域,但是!!But!!这个左上角的小框框是什么。。。。框中人脸在哪。。。),导致了我每次裁剪到这张图时,莫名的报错中止。。。。尝试了个各种方法,终于找到了这个破坏力极强的人脸图像。特此记录一下,并且Get到了一个新的比较实用的新检测方法,matlab的Face Parts Detection工具包。最后给个链接,需要的自己下载吧
链接:https://pan.baidu.com/s/1AHEyCPYj4148vGQtub1VHw
提取码:zelm