使用FaceRecognizer的while循环中的条件是什么

时间:2016-01-11 20:35:01

标签: xcode

如何使用FaceRecognizer进行while循环,以便在识别到面部时,会发生命令?我不确定病情是什么。我使用什么变量以及我将它等同于什么?

这是我的代码

#import "ViewController.h"

NSString* const faceCascadeFilename = @"haarcascade_frontalface_alt2";
const int HaarOptions = CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH;

@interface ViewController ()

@end

@implementation ViewController

@synthesize videoCamera;

- (void)viewDidLoad
{
[super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.

 self.videoCamera = [[CvVideoCamera alloc] initWithParentView:imageView];
 self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionFront;
 self.videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset352x288;
 self.videoCamera.defaultAVCaptureVideoOrientation = AVCaptureVideoOrientationPortrait;
 self.videoCamera.defaultFPS = 30;
 self.videoCamera.grayscaleMode = NO;
 self.videoCamera.delegate = self;

NSString* faceCascadePath = [[NSBundle mainBundle] pathForResource:faceCascadeFilename ofType:@"xml"];
faceCascade.load([faceCascadePath UTF8String]);

Label1.hidden=YES;
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma mark - Protocol CvVideoCameraDelegate

#ifdef __cplusplus
- (void)processImage:(Mat&)image;
{
Mat grayscaleFrame;
cvtColor(image, grayscaleFrame, CV_BGR2GRAY);
equalizeHist(grayscaleFrame, grayscaleFrame);

std::vector<cv::Rect> faces;
faceCascade.detectMultiScale(grayscaleFrame, faces, 1.1, 2, HaarOptions, cv::Size(60, 60));

for (int i = 0; i < faces.size(); i++)
{
cv::Point pt1(faces[i].x + faces[i].width, faces[i].y +   faces[i].height);
cv::Point pt2(faces[i].x, faces[i].y);

cv::rectangle(image, pt1, pt2, cvScalar(0, 255, 0, 0), 1, 8 ,0);
}
}
//#endif

#pragma mark - UI Actions

- (IBAction)startCamera:(id)sender
{
    [self.videoCamera start];

imageView.hidden=YES;

while (FaceRecognizer...) {
   Label1.hidden=NO;
}

}

0 个答案:

没有答案