在iOS上使用OpenCV检测人脸边缘/形状

4

有很多关于如何使用OpenCV检测面部矩形的教程,可以像这样实现:

//Path to the training parameters for frontal face detector
NSString *faceCascadePath = [[NSBundle mainBundle] pathForResource:@"haarcascade_frontalface_alt2"
                                                            ofType:@"xml"];

NSLog(@"%@", faceCascadePath);
const CFIndex CASCADE_NAME_LEN = 2048;
char *CASCADE_NAME = (char *) malloc(CASCADE_NAME_LEN);
CFStringGetFileSystemRepresentation( (CFStringRef)faceCascadePath, CASCADE_NAME, CASCADE_NAME_LEN);

cv::CascadeClassifier faceDetector;
faceDetector.load(CASCADE_NAME);

std::vector<cv::Rect> faceRects;
double scalingFactor = 1.1;
int minNeighbors = 2;
int flags = 0;
cv::Size minimumSize(30, 30);
faceDetector.detectMultiScale(image, faceRects, scalingFactor, minNeighbors, flags, minimumSize);

然而,与其CoreImage相似,它只能将脸部边界检测为矩形。我想要的是检测面部边缘的点,这样我就可以画出类似Snapchat的用户面部周围路径。
有人可以指导我吗?计算机视觉和图像处理不是我的专长,所以我一直在努力开始完成这样的事情。
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接