나는이 link이 얼굴 점 위에 이미지를 배치하는 것을 발견했다. 똑같은 방식으로 눈을 감지하고 거기에 이미지를 배치해야합니다.CIFeatures를 사용하여 눈과 입에 이미지를 놓는 방법
단순하려면 이미지를 사람의 눈에 두어야합니다. 내가 어떻게 해? 모든 팁을 높이 평가 될 것입니다! ,
나는이 link이 얼굴 점 위에 이미지를 배치하는 것을 발견했다. 똑같은 방식으로 눈을 감지하고 거기에 이미지를 배치해야합니다.CIFeatures를 사용하여 눈과 입에 이미지를 놓는 방법
단순하려면 이미지를 사람의 눈에 두어야합니다. 내가 어떻게 해? 모든 팁을 높이 평가 될 것입니다! ,
for (CIFaceFeature *ff in features) {
// find the correct position for the square layer within the previewLayer
// the feature box originates in the bottom left of the video frame.
// (Bottom right if mirroring is turned on)
CGRect faceRect = [ff bounds];
// flip preview width and height
CGFloat temp = faceRect.size.width;
faceRect.size.width = faceRect.size.height;
faceRect.size.height = temp;
temp = faceRect.origin.x;
faceRect.origin.x = faceRect.origin.y;
faceRect.origin.y = temp;
// scale coordinates so they fit in the preview box, which may be scaled
CGFloat widthScaleBy = previewBox.size.width/clap.size.height;
CGFloat heightScaleBy = previewBox.size.height/clap.size.width;
faceRect.size.width *= widthScaleBy;
faceRect.size.height *= heightScaleBy;
faceRect.origin.x *= widthScaleBy;
faceRect.origin.y *= heightScaleBy;
if (isMirrored)
faceRect = CGRectOffset(faceRect, previewBox.origin.x + previewBox.size.width - faceRect.size.width - (faceRect.origin.x * 2), previewBox.origin.y);
else
faceRect = CGRectOffset(faceRect, previewBox.origin.x, previewBox.origin.y);
당신은 얼굴 RECT를 얻을 수 있지만 유는이 유는 나중에 각 위치
-(void)markFaces:(CIImage *)image
{
// draw a CI image with the previously loaded face detection picture
@autoreleasepool {
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracy forKey:CIDetectorAccuracyHigh]];
// create an array containing all the detected faces from the detector
NSArray* features = [detector featuresInImage:image];
NSLog(@"The Address Of CIImage In: %p %s",image,__FUNCTION__);
NSLog(@"Array Count %d",[features count]);
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if([features count]==0)
{
//No image is present
}
else
{
for(CIFaceFeature* faceFeature in features)
{
if(faceFeature.hasMouthPosition)
{
// Your code based on the mouth position
}
if (faceFeature.hasLeftEyePosition) {
// Write your code Note: points are mirrored point so u need to take care of that
}
if (faceFeature.hasRightEyePosition) {
// Write your code Note: points are mirrored point so u need to take care of that
}
}
}
}
답장을 보내 주셔서 감사합니다. 나는 시험을주고 당신에게 알릴 것이다! – 3DNewbie
@ 3DNewbie 항상 환영합니다 – Spynet
눈을 감지했습니다. 하지만 내 문제는 눈 위에 오버레이 이미지를 만드는 것입니다. 그것을 만드는 방법? 즉 원 또는 사각형이 Instaed되어 있습니다. 눈 위에 오버레이 이미지가 필요합니다. – 3DNewbie