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
a clemz :
cette histoire d'analyse de pixels et fabrication d'un cache automatique est assez étonnante ; je me souviens de l'époque pas si lointaine où on passait un jour une nuit à fabriquer des caches sur after pour détourer un cycliste ou des piétons..
ça veut dire qu'avec du python on peut analyser le mouvement des pixels ? j'ai comme un chainon manquant dans le raisonnement .. ça marche commun ??
Oser rêver, et mentir
oui en temps réel ça sort le masque de ce qui est en mouvement :
https://www.youtube.com/watch?v=EILZ4YsI6rU
après tu peux affiner la réduction de bruit comme je l'expliquais plus haut et donc avoir un beau masque propre de la personne . ensuite tu rajoutes ta fonction de calcul de surface de ce masque et hop
clemz,
j'ai regardé avec attention la vidéo et les pages en python (et néanmoins en japonais) qui vont avec.. euh, c'est pas vraiment mon niveau je dois dire, mais c'est assez fascinant.
quand je serais vieux et en retraite je me mettrai à la programmation
(ah zut.. je suis déjà vieux et en retraite...)
Oser rêver, et mentir
oui c'est vrai.. maintenant que tu le dis.. je n'ai pas touché au problème depuis mon message... d'autres priorités et un peu de canicule
je vais refaire les calculs demain.
Oser rêver, et mentir
en fait le plug me donne deux valeurs dont une à l'air correct et l'autre est nettement sous évaluée..
cela vient peut-être du fait que je laisse la fenêtre du plug ouverte pendant que je bouge des points de la forme dont il calcule la surface ?
je ne sais pas si je suis clair..
Oser rêver, et mentir