2013-03-27 14 views
6

Ho bisogno di un modo per trasformare l'immagine contenente l'uomo in un'immagine contenente solo la sihlouette del corpo in un solo colore. Per prima cosa ho dato un'occhiata al rivelatore di bordo Canny (implementazione OpenCV), ma ciò potrebbe causare problemi con lo sfondo dell'immagine.Segmentazione dell'immagine per iOS

Ho provato con l'implementazione GrabCut OpenCV. Funziona bene nella maggior parte dei casi, bit ha prestazioni di tempo estremamente scadenti, ad esempio per l'immagine 480x320 ci vuole un minuto per elaborare. Inoltre, il problema con grabcut è che l'utente deve interagire e impostare l'area di sfondo e l'area utente, che nel mio caso non è consentita.

Quindi, forse puoi darmi delle idee su qualche altro approccio usando qualcosa di diverso da GrabCut, o suggerirmi come migliorare le prestazioni in tempo di GrabBut (Forse l'implementazione di gpu). Inoltre ho bisogno di un suggerimento sull'algoritmo che localizzerà il corpo umano e aiuto l'algoritmo grabcut con il posizionamento dell'area di body/background.

Esempio:

Example

+1

Questa domanda è vaga e priva di dettagli e verrebbe probabilmente chiusa se non fosse per la taglia aperta. Che cosa hai veramente provato? Una terza parte? La tua implementazione? ecc. ecc. Aiutateci ad aiutarvi. –

+0

Penso che una breve panoramica di grabcut potrebbe aiutare; per esempio. aiuterebbe quelli di noi che non hanno familiarità con esso a commentare se è una buona corrispondenza per la parallelizzazione GCD o la GPU o una qualsiasi delle strutture Core Image, se ci sono delle buone librerie di terze parti che potrebbero fare qualcosa di simile per tu ... – Tommy

+0

Almeno dacci una o più immagini di input cosa stai cercando di fare, che tipo di immagine hai come target – shernshiou

risposta

5

può suggerire due cose da indagare che può aiutare:

1) CIDetector classe

2) OpenCV library for iOS. Questo progetto non sembra attivo, ma puoi trovare alcune forcelle o progetti correlati here.

0

OpenCV sarebbe una buona opzione per qualcosa di simile. È possibile ottenere una libreria di pre-costruito per iOS sul sito ufficiale:

http://opencv.org/

E c'è anche un tutorial-app utilizzando OpenCV, che può avere una capacità simile a quello che stai cercando:

http://computer-vision-talks.com/

1

Downscale l'immagine della metà la risoluzione (utilizzare pyrDown()), eseguire GrabCut, rilevamento uso contorno vectorize sfondatura, e sofisticato come necessario.