Photoshop Detection d'un objet !!

Discutez d'informatique ici !
NexusFred
Messages: 2
Enregistré le: 18 Sep 2010, 19:27

Photoshop Detection d'un objet !!

par NexusFred » 18 Sep 2010, 20:36

Bonjour !!

J'ai une petite question pour les experts en Math.

Je suis en train de programmer en javascript un script d'automatisation pour Photoshop et j'ai un petit problème qui je pense peut en partie être résolut par les Maths.
Ce qui tombe assez mal vue mon niveau en Math. lol

Voila le petit problème :
Je fais des photos d'objets divers sur un fond plus ou moins blanc.
Le but du script est de couper la photo a la taille de l'objet présent sur cette dernière.

Vous aller me dire mais c'est super facile a faire sur Photoshop.
Et vous avez raison, ya rien de plus simple a faire manuellement.
Mais quand vous avez 600 images a traiter, heuuuu le manuellement se résume en j'en ai pour 15 jours.
J'ai donc penser a faire un script pour automatiser cela.

Dans Photoshop (a partir des version CS) il existe une commande tres sympa qui se nomme "Rogner et desincliner les photos" ou "Crop and Straighten".

Cette commande produit un résultat de découpe de la photo vraiment parfait.
Par contre j'aimerais me passer de la partie "desincliner" qui a tendance a produire des rotations sur tout mes objets. Ce qui fait que je me retrouve avec des objets dans tout les sens. lol

J'ai donc décidé de refaire la commande sans la rotation, car malheureusement il n'est pas possible de la desactiver . Via plusieurs méthodes j'ai réussi a faire quelque chose qui produit un résultat assez bon. Mais rien d'aussi rapide et surtout sans faille que "Rogner et desincliner les photos".

Ce que je cherche a savoir c'est comment cette commande "Rogner et desincliner les photos" fait pour faire la différence entre l'objet et le fond. Je pense que cette commande utilise la chromatique pour détecter l'objet en fonction de la couleur dominante qui l'entourre.

Cela voudrait dire faire une comparaison pixel par pixel, une fois par la droite et une autre par la gauche.

N'y aurait il pas une autre solution, genre la belle formule mathematique qui sauve la vie ? Car pixel par pixel sur des photos de 12 millions de pixel je redoute le timeout lol.

Merci
A bientôt



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 21 Sep 2010, 22:35

salut,

sans réelles connaissances :
de base l'idée bourrine, c'est de faire la moyenne des trois couleurs rgb du pixel qui donne un canal gris. Comme le fond est plus ou moins blanc, l'idée c'est donc de détecter lorsque tu as une certaine variation du pixel gris.

Donc un algo serait
Code: Tout sélectionner
Pour toutes les colonnes depuis la gauche
 Pour toute les ligne depus le haut
  si (gris du pixel - seuil)>epsilone
  alors on a trouvé l'indice de la colonne jusqu'a laquelle rogner
 finPour
finPour


Apres, en théorie, c'est pas sur que le delta soit vraiment marquant d'une colonne a lautre. Il faut peut etre regarder dans une zone de deux pixel, ou trois, ou quatre... a toi dexpérimenter :D
la vie est une fête :)

NexusFred
Messages: 2
Enregistré le: 18 Sep 2010, 19:27

par NexusFred » 24 Sep 2010, 22:40

Salut

J'avais bien penser a cela mais en faites c est trop long sur des photos de 12 millions de pixels :zen:

Merci quand même

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 25 Sep 2010, 07:57

tu entends quoi par trop long. Combien de temps te prends une dizaine de photos?

Combien de photos doit tu gérer?

Ca me surprend que ca soit trop long aussi.
Sinon, tu peux optimiser viteuf l'algo du style tu fais la somme sur des tranches de pixel, et apres tu look, au lieu dy faire pixel par pixel. Ca te permet de diminuer le nombre de 'if', de même t'évites la division par trois qui sert a rien.

Donc grossièrement, tu compares sur des "groscarrés" de pixels au lieu du pixel à pixel.

M'enfin, je garantie pas que c'est "la" méthode, mais ca me parait pas mal.
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 25 Sep 2010, 08:08

pour approfondir l'idée, merci café, on pourrait faire une approche topdown du style
tu fais des gros carrés, comme avant quoi, pis si tu trouves qqch, tu fais des plus petits carré dans ce carré pour trouver la borne gauche ou ya un changement, pis quand tas trouvé le carré extrême, rebelotte.Une espèce de dichotomie quoi

Faut juste faire gaffe que le choix des carrés soit good, parce que genre si tas un carré beige, et un carré avec une bande blanche à gauche et tout noir après, faudra par choisir le carré à la bande blanche.
la vie est une fête :)

Mathusalem
Membre Irrationnel
Messages: 1837
Enregistré le: 14 Sep 2008, 03:41

par Mathusalem » 02 Oct 2010, 23:02

Surtout il faudrait que dès que l'algo détecte la variation, il saute à la prochaine étape.. faut pas qu'il se fasse toute la photo non plus, donc le 12 millions de pixels est bien réduit. Ensuite pour traiter la partie blanche, comme le dit ffpower (je suis pas expert) mais il y a des algos qui te permettent d'aller très vite.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite