2009-07-29 15 views
9

¿Alguien sabe una manera de tomar una imagen capturada en la cámara del iphone y hacer un procesamiento de imagen (por ejemplo, detección de bordes, esqueletización) y luego superponer partes de la imagen procesada en el original imagen (por ejemplo, solo los bordes resaltados).iphone camerOverlay para usar con aplicaciones de realidad alternativa

De manera más genérica, ¿cómo creo una UImage con transparencia (simplemente escalo la imagen y la superpongo con un valor alfa, UIImage admite transparencia como lo hacen los archivos .gif). Estoy pensando que podría combinar un UIImagePickerController con un hilo de fondo que takes "screenshots" de la vista UIImagePickerController y hacer el procesamiento de imagen en él para detectar varios objetos y proporcionar una visualización de realidad aumentada de superposición.

Hay una fuente abierta simple image processing library para el iphone. El demo shows an example de tomar una foto original (de una placa de sudoku) y luego superponer el objeto detectado en la foto original.

Explican algunos de los high-level techniques on their blog.

Respuesta

3

OpenCV hace superposiciones de imágenes notablemente simples, y ha sido ported to the iPhone. Con OpenCV puede optar por tomar capturas de pantalla mientras considera o puede procesar imágenes en una transmisión en vivo, un fotograma a la vez. Eche un vistazo a algunos de sus programas de tutoriales, son realmente útiles.

1

Hay un UIImagePickerController.overlayView propiedad es posible que desee establecer:

// Create a new image picker instance: 
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 

// Set the image picker source: 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

// Hide the controls: 
picker.showsCameraControls = NO; 
picker.navigationBarHidden = YES; 

// Make camera view full screen: 
picker.wantsFullScreenLayout = YES; 
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, 1, 1.12412); 

// Create an overlay view 
// this might need to either 1) be transparent, or 2) be of the other dimensions 
OverlayView *overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, self.view.height)]; 

// Insert the overlay: 
picker.cameraOverlayView = overlay; 
Cuestiones relacionadas