2012-06-22 3 views
6

Я работаю над приложением, в котором я должен обнаруживать левый глаз, правый глаз и полость рта. У меня есть изображение на моем self.view и imageView содержит изображение лица, теперь я хочу получить координаты обоих глаз и рта. Я видел 2-3 примера кода для этого, но все они примерно одинаковы во всех кодах, которые мы должны инвертировать в моем представлении для соответствия координатам, которые я не хочу, потому что у моего представления есть некоторые другие элементы управления. И еще одна вещь, которую они все используютПроблема с обнаружением лиц с использованием CIDetector

UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"image.png"]]; 

но мое изображениеView имеет рамку, и я не могу ее инициализировать с изображением. Когда я это делаю, я обнаружил, что глаза и рот не совпадают с глазами лица.

Я начал свой код с this sample code, но в этом тоже обращается его координата Y.

Может ли кто-нибудь помочь мне, как я могу определить лицо и положение рта на изображении UIImageView без инвертирования моего self.view.

дайте мне знать, если мой вопрос недостаточно ясен.

Любая помощь будет оценена, спасибо заранее!

ответ

0

Работал! - отредактировал класс, чтобы иметь faceContainer, который содержит все объекты лица (рот и глаза), затем этот контейнер вращается и все это. Очевидно, это очень грубо, но оно действительно работает. Вот ссылка, http://www.jonathanlking.com/download/AppDelegate.m. Затем замените делегат приложения из кода примера на него.

- OLD POST -

Посмотрите на эту Apple Documentation и слайд 42 года от this apple talk. Также, вероятно, вы должны следить за разговорами, поскольку у него есть демо того, чего вы пытаетесь достичь, он называется «Использование основного изображения на iOS & Mac OS X» и является here.

+0

спасибо за ваш ответ, но что вы пытаетесь объяснить? Я знаю, как обнаружить faceFeature глаза и рот позиции с CGImage, мой вопрос отличается, у меня проблема с uiimage uiimageview. – TheTiger

+0

Извините, полностью непонятый вопрос! –

+0

совсем нет ..... :-) – TheTiger

1

Трюк здесь состоит в том, чтобы преобразовать возвращаемые точки и границы из CIDetector в ваши координаты вместо того, чтобы листать свой собственный вид. CIImage имеет начало в левом нижнем углу, который вам нужно будет преобразовать в верхнем левом углу

int height = CVPixelBufferGetHeight(pixelBuffer); 
CGAffineTransform transform = CGAffineTransformMakeScale(1, -1); 
transform = CGAffineTransformTranslate(transform, 0, -1 * height); 

/* Do your face detection */ 

CGRect faceRect = CGRectApplyAffineTransform(feature.bounds, transform); 
CGPoint mouthPoint = CGPointApplyAffineTransform(feature.mouthPosition, transform); 
// Same for eyes, etc 

Для вашего второго вопроса о UIImageView, вы просто должны сделать

imageview.image = yourImage 

После инициализации ваш ImageView

 Смежные вопросы

  • Нет связанных вопросов^_^