Utilisation d'images d'articles de vêtements prises sur un fond cohérent, je voudrais faire tous les pixels de l'image transparent à l'exception des vêtements. Quelle est la meilleure manière de s'occuper de ça? J'ai étudié les algorithmes communs pour cela et la bibliothèque open source OpenCV . En plus de rouler le mien ou l'utilisation d'Opencv, il y a un moyen facile de faire cela? Je suis ouvert à n'importe quelle langue ou plate-forme. P>
merci p>
4 Réponses :
Si vous connaissez l'intensité de couleur exacte de l'arrière-plan et que cela ne changera jamais et les articles de vêtements ne coïndront jamais avec cette couleur, il s'agit donc d'une application simple de la soustraction de fond, c'est tout ce qui n'est pas une intensité de couleur particulière est considéré comme un pixel "sur", un intérêt. Vous pouvez ensuite utiliser l'étiquetage des composants connectés ( http://fr.wikipedia.org/wiki/connected_component_labelingleightleightle_/a >) Pour comprendre des groupements séparés d'objets. P>
Merci pour le conseil. Les images seront traitées par l'utilisateur. Donc, je ne peux pas connaître la couleur exacte.
Pour une image couleur, avec le même arrière-plan sur toutes les images: P>
Eh bien, je viens de lire le commentaire sur tout le fond blanc ou tout noir ... Cet algorithme ne va pas, car l'arrière-plan ne sera pas pareil sur toutes les images.
Fondamentalement, trouvez la couleur de l'arrière-plan et soustrayez-la, mais je suppose que vous saviez cela. C'est un peu délicat de faire tout cela automatiquement, mais cela semble possible. P>
Tout d'abord, jetez un coup d'œil à Pour le faire vous-même: P>
OpenCV est un bon outil pour cela. p>
La partie la plus délicieuse de ce sera probablement à l'ombre autour de l'objet (par exemple, une veste noire sur fond blanc aura une ombre grise continue dans certaines des bords et où faire cette coupe?), mais si vous obtenez C'est loin, postez une autre question. P>
Si votre arrière-plan est consisté à une image mais incompatible entre les images, cela pourrait être délicat, mais voici ce que je ferais: p>
Le bord de la pièce de vêtements va maintenant regarder un peu laids car il s'agit de pixels qui gagnent leur couleur de l'arrière-plan et de la pièce de vêtements. Pour lutter contre cela, vous devez faire un peu plus de travail: p>
Quelque chose me dit que si quelqu'un prend une photo d'un vêtement, il organisera sa photo de sorte qu'elle remplisse principalement l'image. La couleur la plus courante ne sera donc pas l'arrière-plan. Aussi avec cet algorithme, si par hasard, le vêtement touche le bord, vous enlèverez tout le morceau de vêtement de l'image ...
C'est un bon point. Donc, vous devriez probablement regarder la couleur la plus répandue près du bord de l'image.
Quel type d'image utilisez-vous: 8 bits, 16 bits, monochrome, couleur? De quelle couleur sont les vêtements? sont-ils contrastés contre le fond? Vous dites que vous voulez faire le fond transparent: dites-nous un peu plus de votre objectif, allez-vous superposer les vêtements sur une autre image? (Avez-vous une image d'exemple que nous pouvons regarder?)
Quel est le fond "cohérent"? Est-ce une couleur?
J'ai aussi oublié: vous semblez avoir de nombreuses images, c'est l'arrière-plan de la même couleur sur toutes les images ou le changement de couleur de fond en fonction de la photo?
Les images seront prises sur l'iPhone des utilisateurs. Ils seront conseillés d'utiliser et de tous les antécédents blancs pour des vêtements sombres et un fond noir pour des vêtements légers. Je ne vais pas les superposer mais les afficher dans une vue de défilement. Le traitement réel ne doit pas arriver sur l'iphone cependant
Cela ne fera pas de fond cohérent. La foudre est déjà difficile avec un matériel adéquat et un environnement contrôlé. Ces utilisateurs prendront des photos à l'intérieur et utiliseront des lumières de base avec une caméra de mauvaise qualité ...