Ct changer le contraste en un endroit précis?

Résolu
Messages postés
20
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
24 mai 2007
-
Messages postés
20
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
24 mai 2007
-
Salut à tous,
je voulais savoir comment on pouvait, avec VB, faire changer le contraste seulement à des endroits d'une image?
Exemple: on joue diminue le contraste de la barre inférieur d'un "E" et on obtient donc un "F"....
Donc en clair est ce que vous savez comment on peut influencer une ligne faisant partie d'une image?
J'ai regardé les codes où on influence sur le contraste mais j'ai pas trop saisi les histoires de pixels remplacer par d'autre pixel dont on change les RGB, d'autant plus que je ne souhaite que travailler en noir et blanc....

Cordialement,
Kariar apprenti en VB

7 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

Que tu travailles en couleurs ou en noir et blanc n'a rien à voir.
Les exemples que tu as vus (dont le mien, probablement), modifient le contraste de pixels .
Commençons donc par la définition du mot contraste : il ne peut s'appliquer à une seule couleur, bien évidemment, mais à au moins deux couleurs (celle d'un pixel d'une couleur et celle d'un pixel voisin d'une autre couleur) !!!
En d'autres termes : ne pas confondre contraste avec éclaircissement ou assombrissement d'une seule couleur !
Dans de telles conditions : "influencer une ligne " n'a aucun sens lorsque l'on parle de contraste, bien évidemment !
quant à limiter la zone d'application de contraste, ma foi, rien n'est plus simple : il te suffit de "contraster" une zone rectangulaire dont la position et les dimensions ne sont pas celles de la totalité de ta PictureBox mais définies comme tu l'entends (pour correspondre à la seule zone que tu veux "contraster").
Les codes que tu as vus restent donc à appliquer tels quels, sauf à modifier (dans la double boucle de traitement) les coordonnées de la zone rectangulaire à "balayer" et "contraster".
J'espère que tout celà n'est pas du chinois pour toi (je ne le pense pas, dès lors que tu veux traiter des images...)
Messages postés
20
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
24 mai 2007

Salut,
si j'ai bien compris il suffirait que je reprenne cette partie du programme tiré de ton "éditeur d'image" et que j'en chage les coordonnées finales:
Private Sub Command12_Click()
Dim PointColor As Long
Dim R, V, B
Dim R2, V2, B2
re = InputBox("Limitez les couleurs à ... couleurs par réseaux.", "Limitation des couleurs", "10")
If re = "" Then Exit Sub
For x = 0 To P.ScaleWidth - 2
For y = 0 To P.ScaleHeight - 2
PointColor = P.Point(x, y)
R = Int(PointColor Mod 256)
V = Int((PointColor - R) / 256 Mod 256)
B = Int((PointColor - R) / 256 / 256)
d = 255
For Cr = 0 To 255 Step 255 / reIf Abs(Cr - R) < d Then d Abs(Cr - R): R Cr
Next Cr
d = 255
For Cr = 0 To 255 Step 255 / reIf Abs(Cr - V) < d Then d Abs(Cr - V): V Cr
Next Cr
d = 255
For Cr = 0 To 255 Step 255 / reIf Abs(Cr - B) < d Then d Abs(Cr - B): B Cr
Next Cr




VerifColor R2, V2, B2
P.PSet (x, y + 1), RGB(R2, V2, B2)
Next yIf x Mod 50 0 Then S1.Width (x / P.ScaleWidth) * Me.Width
Next x





End Sub






Ta solution s'adapterai bien à des figures simples tel que les chiffres et les lettres mais je dois aussi traviller sur de figures plus complexes!! 
Il y aurait-il un moyen de faire d'autre forme de figure ou alors il faudrait utiliser une solution tout autre?

Cordialement,
Kariar apprenti en VB
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Le code que tu montres n'es pas de moi (je ne reconnais pas mon écriture habituelle) et je ne me rappelle pas avoir déposé un "éditeur d'images" !!!


Ce code  traite apparemment de la modification des couleurs (en fonction d'un choix de profondeur)  d'un objet P entier ...(sur toute sa largeur et toute sa hauteur), pas sur une partie seulement ... 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Le code que tu montres n'es pas de moi (je ne reconnais pas mon écriture habituelle) et je ne me rappelle pas avoir déposé un "éditeur d'images" !!!


Ce code  traite apparemment de la modification des couleurs (en fonction d'un choix de profondeur)  d'un objet P entier ...(sur toute sa largeur et toute sa hauteur), pas sur une partie seulement ... 
Messages postés
20
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
24 mai 2007

Si ce ne sont pas ces codes là que tu évoquais dans ton premier message lesquels sont ils?

J'ai été voir tes codes avec le programme pour le bateau et je ne comprend pas comment tu réussis mettre en liaison la nouvelle valeur du contrsate et la Picturebox!!!
De plus je ne vois vraiment pas où je pourrais inflencer la "taille" de la fenêtre d'application!?!

Sinon je me demander de ce que tu pensais de cette solution (même si je ne connais pas encore assez VB6 pour la réaliser):
Si je met une association d'images  et que je fasse intervenir le contraste uniquement sur certaines images le tour serait joué non! (ex: je créer l'image d'un "F" et je rajoute l'image d'une barre pour faire le "E" et je n'intervient que sur cette dernière)

Cordialement,
Kariar apprenti en VB
Messages postés
20
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
24 mai 2007

Si ce ne sont pas ces codes là que tu évoquais dans ton premier message lesquels sont ils?

J'ai été voir tes codes avec le programme pour le bateau et je ne comprend pas comment tu réussis mettre en liaison la nouvelle valeur du contrsate et la Picturebox!!!
De plus je ne vois vraiment pas où je pourrais inflencer la "taille" de la fenêtre d'application!?!

Sinon je me demander de ce que tu pensais de cette solution (même si je ne connais pas encore assez VB6 pour la réaliser):
Si je met une association d'images  et que je fasse intervenir le contraste uniquement sur certaines images le tour serait joué non! (ex: je créer l'image d'un "F" et je rajoute l'image d'une barre pour faire le "E" et je n'intervient que sur cette dernière)

Cordialement,
Kariar apprenti en VB
Messages postés
20
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
24 mai 2007

Alors aprés plusieurs recherches j'ai trouvé le programme qui parait le plus simple pour changer le contraste
(http://files.codes-sources.com/fichier.aspx?id=30364&f=Contraste.bas)

J'ai tenté de faire un programme qu'avec ce module masi je n'y arrive pas!
Quelqu'un peut il me renseigner sur la méthode à adopter?

Pour info:
J'avais commencer par créer  un nouveau module puis copier le "contraste.bas" dedans.

Puis j'ai créer une picturebox "picdest" et une "picsource", un  "valcontrast" et une commande "contraste" (tout à l'image du programme initiale)
Le programme ne m'affiche pas d'erreur masi ne fonctionne pas pour autant........................

Cordialement,
Kariar apprenti en VB