Bună, există vreo modalitate de a vă schimba dimensiunea subțire a imaginii în dimensiunea grăsimii invers în SDK-ul iPhone?

schimbați

În această aplicație vreau să ofer utilizatorului posibilitatea de a-și schimba imaginea de la dimensiunea obișnuită la dimensiunea grăsimii prin glisarea glisorului pe care îl poate măsura în iPhone SDK? Cred că acest lucru poate fi funcționat prin obținerea de pixeli de imagine Am încercat acest cod pentru a obține pixeli de imagine, dar elimină doar culorile din imagine.

De asemenea, am încercat întinzând imaginea din acest cod.

Ma poate ajuta cineva? Nu am găsit niciun cadru sau SDK care să-mi ofere acest tip de funcționalitate. Am căutat pe Google de mult timp.

1 Răspuns 1

Așa cum se întâmplă, lucrez la ceva aproape exact ca ceea ce descrieți pentru compania noastră acum. Ne ocupăm de fețe, ceea ce este o problemă mai ușor de realizat în mod realist.

Iată o imagine înainte (cu adevărat a ta)

Și iată-l cu o transformare „față grasă”:

Ceea ce am făcut este să import imaginea într-o textură OpenGL și apoi să aplic textura respectivă pe o grilă mesh. Aplic un set de modificări la rețeaua de plasă, strângând anumite puncte mai aproape și întinzând altele mai departe. Obținerea unei fețe grase realiste a necesitat multă reglare fină, dar rezultatele sunt destul de bune, cred.

Odată ce am calculat mesh-ul, OpenGL face „greutatea ridicată” a transformării imaginii și foarte rapid. După ce totul este configurat, desenarea efectivă a imaginii transformate este un singur apel.

Iată aceeași imagine, care arată liniile grilei:

Mi-au trebuit câteva săptămâni de lucru cu normă întreagă pentru a obține deformarea de bază a rețelei de lucru (pentru un proiect client care a căzut) și apoi încă o săptămână cu jumătate de normă pentru a obține aspectul feței grase. Introducerea întregului lucru într-un produs comercializabil este încă o lucrare în desfășurare.

Algoritmul pe care l-am propus este suficient de rapid pentru a aplica transformarea grăsimii (și a altora diferite) la intrarea video de la o cameră iOS la 30 FPS complet.

Pentru a face acest tip de procesare a imaginilor, trebuie să înțelegeți trig, algebră, matematica indicatorului, matrici de transformare și să aveți o înțelegere solidă a modului de scriere a codului extrem de optimizat.

Folosesc noul cod de recunoaștere a feței Core Image de la Apple pentru a găsi caracteristicile feței oamenilor într-o imagine și să folosesc coordonatele ochilor și gurii ca punct de plecare pentru transformările mele.

Proiectul dvs. este mult mai ambițios. Ar trebui să faceți o prelucrare serioasă a imaginii pentru a găsi toate caracteristicile, pentru a le urmări contururile și apoi pentru a afla cum să transformați imaginea pentru a obține un efect convingător de grăsime. Ați avea nevoie de imagini sursă de înaltă rezoluție care au fost pozate, iluminate și filmate în condiții atent controlate pentru a obține rezultate bune.

S-ar putea să fie prea mult pentru puterea de calcul a dispozitivelor iOS actuale, iar tipul de recunoaștere a imaginii pe care ar trebui să-l faceți pentru a afla părțile corpului și cum să le transformați ar fi extrem de dificil. S-ar putea să doriți să aruncați o privire la proiectul OpenCV open source ca punct de plecare pentru partea de recunoaștere a imaginii a problemei.