Page 1 sur 2

[R] Détéction de bulles

Posté : sam. 29 oct. 2011 21:41
par karime1
bonjours,

je cherche un moyen pour détecter les rectangles blanc dans une image: les coordonnées du point en haut a gauche et celui en bas a droite de chaque rectangles.
http://www.gilawhost.com/images/9fnp649z.jpg (les espaces à détecter sont marqués en rouge)
http://www.gilawhost.com/images/30cv2dm4.jpg (photo original)
théoriquement la photo ne comporte que des pixel noir ou blanc.

vos idées me seront d'une aide précieuse.

Re: [..] Détéction de rectangle blanc

Posté : sam. 29 oct. 2011 22:07
par mikell
C'est chaud :shock:
Heu sans indiscrétion quel est le but ?

Re: [..] Détéction de rectangle blanc

Posté : sam. 29 oct. 2011 23:11
par PandiPanda
c'est pour sans doute permettre de mettre du texte directement dans les carré blanc sans devoir faire tout plein de manipulation, je me doute xd ou extirper le texte des carre ...

Mais la problematique est la comment faire la difference entre les rectangle et le fond blanc des images? xD

Je suppose que vous voulez faire ceci avec des image differente et des rectangle de toute taille ?
Je voit vraiment pas ...

Ce qui serai jouable par contre ca serai que manuellement vous entouriez ces rectangles d'une autre couleur ...

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 00:10
par jchd
Il va falloir s'associer sur ce coup-là. Vois ceci, c'est la base de ce qu'il te faut.

Et d'un doigt sûr cette fois, il mit le lien...

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 09:18
par mikell
Sympa le lien, mais le gros hic c'est qu'avant la recherche il faut isoler les images à rechercher en appliquant un background noir ^^
Et l'image prise pour le test est quand même infiniment plus facile à gérer

Image

Il faudrait "peindre" manuellement les rectangles en rouge, récupérer en array 2D les coords des pixels rouges, et en faire un "calque" reportable sur l'image de départ
Image

Une autre solution pourrait être ImageSearch si on pouvait le faire avec une image-source de taille variable...

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 12:16
par karime1
effectivement, je cherche a mettre le texte directement dans les bulles (avec photoshop).
les pages ont toutes les même dimension 765*1100 (a par celle que j'ai prise pour le test) et sont toute en noir et blanc.
j'ai amélioré la func qui rend la photo plus facile a traiter (tout les px blanc qui sont entouré des deux cotés d'un px noir dans un rayon de 10px devient noir et aussi les marges). et voila le résultat: http://www.gilawhost.com/images/lpqnp4gi.jpg
si la func filtre les cadre de moin de 20*20px. je croi que ça serai plus facile
dans le pire des cas Autoit pourra sélectionner toute les bulle possible et moi je dé-sélectionne ceux qui ne le sont pas. mais puisque il y'a un détecteur facial je sais pas pourquoi on se planterai pour faire un détecteur de bulle. (je suis optimiste :D ).
et pour le lien ça a l'air d'être du C# et j'y connai rien :shock: mais je vais continuer de lire et pitet que je pourrai utiliser le principe avec autoit.

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 12:36
par mikell
karime1 a écrit : je cherche a mettre le texte directement dans les bulles (avec photoshop).
Chaque écriture de texte dans sa bulle est une action unique, or Autoit sert à automatiser des tâches... où est l'intérêt de faire ça avec autoit ?

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 13:25
par karime1
phtoshop ne serait avoir les coordonnés de chaque bulle

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 13:55
par mikell
Dans ce cas c'est clair que la meilleure méthode serait :
- avec le pot de peinture de photoshop peindre toutes tes bulles en rouge
- pour chaque bulle, détecter le pixel rouge dont le pixel précédent (x, y) n'est pas rouge, et le pixel rouge dont le pixel suivant (x, y) n'est pas rouge
- utiliser la fonction _StringSize pour calibrer le texte en fonction de ces coordonnées
- utiliser GDI+ et la fonction _ImageDrawText pour écrire dans les bulles
- changer les pixels rouges qui restent en pixels blancs
- sauvegarder la nouvelle image

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 14:11
par PandiPanda
hmmmm si il doit agir manuellement, il serai pas plus simple qu'il delimite lui même le rectangle via 2 point

Le point en haut à gauche et le point en bas à droite du rectangle. Il suffirait d'en extirper leur position, et on a plus vraiment besoin de faire la "reconnaissance" de couleur non?

ainsi il suffirai de suite faire comme vous avez décrit avec GDI+ et mettre le texte adéquat, sans réellement passé par photoshop ... une simple GUI avec l'image et un bouton pour dire "je choisis mon point" et c'est fait ...

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:03
par mikell
:mrgreen:
En fait le plus simple serait carrément qu'il "monte" l'image dans une gui transparente, qu'il écrive directement dedans en se positionnant au pointeur de souris (en créant à la volée des edit transparentes), et qu'il sauvegarde le résultat par capture de fenêtre... :roll:
Une écriture WYSIWYG quoi ^^
Je le vois très bien : 2 guis, une petite pour les controles (chargement de l'image, choix de la police façon Windows, bouton de sauvegarde, etc) et une grande avec l'image dedans, et on initialise (ou on désinitialise) l'écriture avec un clic droit Image

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:04
par karime1
nan, le pasage manuel par photoshop est immportant je doit donner une joli forme au texte que je vais ecrir. (centré, italique, gras, bordure...)
donc apres avoir eu les coordonné il ouvre photoshop crée un rectangle avec l'outil de photoshop et colle dedans le texte puis enregistre la photo en psd que j'ouvrirai moi meme apres pour revoir la forme du texte et la taille.
mais le plus important ce sont les coordonnées que j'aurai du mal a avoir puisque j'ai compris du C#
en plus ma func pour rendre la photo presque noir peut prendre jusqu'a 30 min pour une seul page. mais on a un bon resultat:http://www.gilawhost.com/images/h274lzpe.jpg
► Afficher le texte

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:10
par mikell
karime1 a écrit : je doit donner une joli forme au texte que je vais ecrir. (centré, italique, gras, bordure...)
Sur le forum US il y a des variantes sophistiquées de la fonction ChooseFont ^^
Et pas de photoshop, (presque) pas de GDI+, une exécution très rapide... c'est toi qui vois Image

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:13
par karime1
le plus important n'est pas écrie le texte mais avoir les cordonnés des bulles. et de tout façon je vais faire passer le résultat a quelqu'un d'autre qui les veux en psd donc j'ai pas le chois

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:15
par mikell
Avec une gui, t'en as rien à cirer des coordonnées, tu positionnes ton texte avec un clic de souris :roll:

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:20
par PandiPanda
PandiPanda a écrit :hmmmm si il doit agir manuellement, il serai pas plus simple qu'il delimite lui même le rectangle via 2 point

Le point en haut à gauche et le point en bas à droite du rectangle. Il suffirait d'en extirper leur position, et on a plus vraiment besoin de faire la "reconnaissance" de couleur non?
c'est ce que je propose ^^
vous pouvez vous arretez simplement au choix des position, seul hic ouai c'est +- un travail manuel, étant donné que c'est vous qui choissisez les 2 points !

après j'ai proposé ceci, parceque je voit vraiment pas comment faire pour reconnaitre "exactement" que ca c'est un rectangle et pas le fond de l'image xD

et entre faire un travail préalable de 30 min pour "mettre bien" l'image, il serai pas benefique plutot que de faire quelque click? a savoir les 2 point de chaque rectangle ?

@mikell apparemment il veux absolument passé par photoshop, c'est son choix :P
apres pour récuperer la position dans une gui c'est facile ...

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:28
par mikell
PandiPanda a écrit :@mikell apparemment il veux absolument passé par photoshop, c'est son choix :P
apres pour récuperer la position dans une gui c'est facile ...
Evidemment... et il pourrait utiliser une gui pour récupérer manuellement toutes ces coordonnées à la souris (c'est facile avec juste des rectangles de sélection) :roll:
En fait ce qu'il veut c'est écrire un script photoshop Image

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 15:31
par karime1
utiliser cette gui ne me fera pas avencer je pourrai faire un rectangle de texte avec photoshop manuellement et sa reviens au même.c'est pas moi qui m'impose l'utilisation de photoshop. c'est le boss.
je pourrai pas utiliser un script de photoshop parceque le nombre bulle change et leur dimmention aussi

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 18:20
par PandiPanda
Bon pour essayé de faire avancer un peu le tout ...

J'aurai (nous ?) besoin de savoir divers chose !

1) Que voulez vous faire?
~ récuperer les positions de divers rectangles ? seulement les positions? (point haut gauche et bas droite)
~ autre? ...

2) Supposons, que le script récupere ce que vous voulez.
~ Que faire de ce que vous avez récuperer? la stocker dans un fichier? simuler des actions sur photoshop?
~ autre? ...

3) Quels sont vos contraintes?
~ possibilité que vous "choississez" vous même la position des rectangles? ou tout doit se faire "obligatoirement" sans votre intervention?
~ utilisations obligatoire de photoshop ?
~ autre ? ...

ou plus y'a de détails sur ce que vous voulez faire/contrainte, au mieux on pourra vous fournir de l'aide ^^)

Re: [..] Détéction de rectangle blanc

Posté : dim. 30 oct. 2011 19:27
par karime1
ok...
alors voila je fait du scantrad les anime comme naruto sont dabord des manga (Bande dessiné) en japonais qui sont traduit en anglais puis en fr donc il y'a un pour traduire, un pour vider les bulles, un pour remplir les bulle, et un pour vérifier tout et le mettre sur internet.
moi mon job c'est de remplir les bulles: je crée un cadre avec l'outil texte de photoshop, je met le texte traduit dedant je lui donne une joli forme arrondi, j'ajuste la police (depend du type et de la taille de la bulle).
et comme je trouve que je fait un travail répété je voudrai confier ça a Autoit. et puisque y'a quelqu'un après moi dans la chaine je doit obeir a quelque règles comme faire des fichiers psd.
mais aprar ça, le texte doit avoir une jolie forme arrondi ce qui va etre difficile a automatiser donc tout ce que je cherche a faire c'est un ptit prog qui met le texte dans les bulles et qui le centre et lui met la police approprié (par exemple italique pour les bulle type cadre).
==> Conclusion: je suis loin du but.