je pose ce problème dans le saloon parce que ce n'est pas vraiment du C4D pur jus..
Voilà mon souci, sachant qu'il ya quelques bons matheux sur ce forum..
j'analyse une image d'interview et mon but est de déterminer la part d'image que représente l'interviewé par rapport à l'ensemble.
Photoshop me donne les coordonnées d'un point et peut-être même la surface du calque utilisée mais pas la véritable surface (que j'ai coloré en bleu dans mon exemple)
sur cinema 4d je peux mettre cette image en fond et dessiner une spline qui fasse le contour du personnage (je n'ai pas besoin d'une grande précision) mais puis-je déterminer la surface de cette spline fermée par rapport à l'ensemble de l'image : un pourcentage à la louchette me suffirait. Il va de soi que je fais ce calcul sur une image fixe.
Je dois déterminer également l'angle du regard de l'interviewé par rapport à l'axe caméra, mais ça je pense que j'ai une petite idée de comment je vais le faire..
une idée ??
Dernière modification par ozchan ; 03/07/2019 à 10h38.
Oser rêver, et mentir
Tu peux créer une surface à partir de ta spline et utiliser un de mes petits plugins qui calcule l'aire : https://code.vonc.fr/?a=40
Après, là je pense qu'il serait bien plus simple de compter le nombre de pixels bleus (de ton interlocuteur) et le diviser par le nombre de pixels de l'image.
J'essaierai de te faire ça en JavaScript dès que je serai dispo, ce soir ou demain, avec une petite interface pour mesurer l'angle.
c'est juste sur une image fixe ? ou tu as un film dispo ? auquel cas tu pourrais regarder du coté des bibliothèque OpenCV (python ou C++ )
par ex si la caméra est fixe , tu peux facilement sortir un mask noir&Blanc de ce qui bouge dans l'image ( donc les 2 personnages et le micro ) , puis en utilisant 2 fonctions particulières ( une qui 'erode' les mask , permettant d'éliminer les bruits éventuels , et surtout le micro ici / puis une autre qui 'dilate' le résultat érodé , pour redonner le même volume au masks mais sans le micro et les bruits cette fois ) . De ces masks tu peux alors séparer celui de droite et celui de gauche et calculer la surface en temps réel de l'un ou l'autre .
Ca parait complique comme ça mais en fait non ( je suis dedans ces temps-ci )
waouh.. j'ai l'impression d'avoir frappé à la bonne porte !
je vais essayer déjà le plug in "aire et volume" made by CV..
effectivement si on peut raisonner en terme de nombre de pixels c'est un plus.. mais pas vraiment une obligation.
Clemz : j'avoue que je ne comprends pas ton approche vu mon manque de culture : tu as une appli qui codes directement à partir d'un fichier le fichier film ?
mais de toutes façons en ce qui me concerne je travaille sur des images arrêtées..
Oser rêver, et mentir
ha bon si tu n'as pas de film c'est mort alors pour la détection auto . ( cela dit , c'est la mode en ce moment des solutions de "deep learning" et reconnaissance auto d'objets/personnes que ce soit sur des images ou films , mais je ne sais pas si ça peut en trouver les contours/surfaces )
pour la solution de 'background subtraction' dont je te parlais , ça soustrait simplement les pixels d'une frame à l'autre ( en faisant une moyenne sur plusieurs frames biensur ) et sort un masque noir de ce qui n'a pas bougé ..et blanc de ce qui bouge.. c'est tout simple . Le code python est relativement simple aussi (en 10-15 lignes max ça fonctionne) , et j'ai vu quelqu'un demander sur le site de maxon dev, si on pouvait rajouter la bibliothèque OpenCV dans c4d , je crois que c'est possible donc de faire ça dans c4d directement ..via quelques lignes de code . Si Graphos passe par ici il pourrait nous en dire plus la dessus je pense.
ci-joint une image du masque généré par la fonction de backg. subtraction . il est de là possible de calculer automatiquement la surface , via des fonctions d'opencv ou alors de compter tous les pixels blancs comme César le suggérait
Dernière modification par clemz ; 04/07/2019 à 09h40.
bonjour à tous
le plug de césar vonc fonctionne à merveille : l'interviewé occupe une surface de 4 pour cent plus quelques virgules in intéressantes mais qui vont faire très sérieux dans mon travail de recherche.. un grand merci à toi. Il suffit de tracer un rectangle de référence avant de faire la découpe et veiller à ce que découpe et rectangle soit sur le même plan z
pour l'angle du regard je pensais faire passer un plan par l'axe caméra et orienter un plan dans l'espace un peu au pif ; mais je vais peut-être creuser le module de track d'image ; comme je suis sur des images fixe j'imagine que ce ne doit pas être trop galère..
Oser rêver, et mentir