# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Algorithme contraste d'image

## uranium-design

Bonjour chers programmeurs,

Quelqu'un d'entre vous connait-il un algorithme de contraste d'image optimal ? J'en ai crit un mais il me semble pas trs performant car il est assez lent en excution.

Et Merci pour votre aide  ::):

----------


## Matthieu Brucher

Optimal dans quel sens ?

----------


## uranium-design

> Optimal dans quel sens ?


Optimal dans le sens o il minimise le temps d'excution tout en faisant correctement le travail. Bref un algorithme trs rapide et merci

----------


## Matthieu Brucher

Ca ne veut riend ire non plus. On appelle algorithme optimal au sens d'une certaine fonction de cot un algorithme qui mminimise cette fonction de cot.
Ici, pour toi, il n'y a pas vraiment de fonction de cot, sinon une dfinie trs vaguement par le temps d'excution et par correctement...
En gros, la seule chose qu'on puisse te dire, c'est tale la plage des valeur du contraste au maximum.

----------


## ToTo13

Bonjour,

une trs monde mthode pour faire un filtre de contraste est de le crer  partir d'une fonction, passant par (0,0) et (255,255).
Pour que a contraste, il faut que ta fonction ait la forme d'un 'S'.
Pour cela, j'utilise une fonction de Bezier avec au moins quatres points de contrles afin de dssiner le contraste que je souhaite.

----------


## uranium-design

> Bonjour,
> 
> une trs monde mthode pour faire un filtre de contraste est de le crer  partir d'une fonction, passant par (0,0) et (255,255).
> Pour que a contraste, il faut que ta fonction ait la forme d'un 'S'.
> Pour cela, j'utilise une fonction de Bezier avec au moins quatres points de contrles afin de dssiner le contraste que je souhaite.


Merci mais j'ai pas compris. 

Quel sera le lien entre la fonction de bzier sous forme de 'S' et le contraste de l'image ?  Autrement dit comment l'image sera influence par la courbe de bzier ?

----------


## Matthieu Brucher

> Quel sera le lien entre la fonction de bzier sous forme de 'S' et le contraste de l'image ?  Autrement dit comment l'image sera influence par la courbe de bzier ?


C'est un talement d'histogramme particulier. C'est l o ta question n'est pas bien pose car tu ne sais pas - et moi non plus d'ailleurs, c'est pourquoi je pose la question et pourquoi ToTo13 t'a donn cette rponse, pensant que tu t'y connaissais un minimum - quel est la meilleure rpartition des contrastes dans une image pour qu'elle soit "belle" visuellement, donc quelle est la rpartition pour un affichage optimal au sens psychovisuel.

----------


## uranium-design

> ...quel est la meilleure rpartition des contrastes dans une image pour qu'elle soit "belle" visuellement, donc quelle est la rpartition pour un affichage optimal au sens psychovisuel.


En fait je cherche pas la beaut visuelle, ce sont des images destines  la reconnaissance de formes et donc un filtre de contraste est ncessaire pour liminer les bruits (Un petit peu comme le filtre de contraste des logiciels de traitement d'images classiques tel Photoshop).

----------


## Matthieu Brucher

Voil, donc l c'est sans doute encore diffrent de ce que tu veux.
Malheureusement, je dois dire, changer la rpartition du contraste ne va pas amliorer tes calculs. Ca sera plus beau visuellement peut-tre, mais tes algos auront toujours le mme problme, voire plus car au dpart si tu n'as que 20 valeurs de contrastes,  la fin tu n'en auras pas plus, peut-tre mme moins  ::(: 
Si tu veux liminer les bruits, je te conseille d'abord d'aller voir http://humbert-florent.developpez.co.../introduction/ pour voir ce qu'est un filtrage linaire et pour voir son application simple au dbruitage. Aprs, une fois que tu matriseras a et que tu as des limitations par rapport  ton application, on pourra t'aider  aller encore plus loin  :;):

----------


## ToTo13

Bonjour,

pour ma rponse, voil une photo qui explique se dont je parlais :


Dans mon soft, j'utilise une fonction de Bezier pour obtenir la courbe du filtre (fonction de filtrage).

----------


## uranium-design

> ...Dans mon soft, j'utilise une fonction de Bezier pour obtenir la courbe du filtre (fonction de filtrage).



C'est un petit peu a dont j'ai besoin. Mais je comprends pas comment sont lis le spectre et la fonction de filtrage avec l'image. Pourras tu m'indiquer o je peux trouver a ?

By the way, une autre question  propos de cette mthode, est-elle rapide ? autrement dit, t'aurais pas un ordre de grandeur du temps d'excution pour une certaine taille de l'image ?

----------


## ToTo13

Bonjour,

c'est une fonction mathmatique I(x,y) = F(I(x,y)), donc a s'utilise de la mme faon.
Admettons que tu as un pixel (x,y) de l'image I, a valeur vaut I(x,y). Tu met la valeur I(x,y) dans ta fonction de contraste F et tu regardes la valeur de sortie.

Donc c'est un mthode linaie O(N) avec N la taille de ton image.

Un petit exemple, admettons que tu as une image en niveau de gris variant entre 0 et 255. La fonction qui inverse la valeur des pixels est : F(x) = -x+255

----------


## Ti-R

> quel est la meilleure rpartition des contrastes dans une image pour qu'elle soit "belle" visuellement, donc quelle est la rpartition pour un affichage optimal au sens psychovisuel.


Aucun algorithme ne peu le dfinir, car c'est propre  chacun.

C'est possible de redistribuer l'histogramme pour maximiser l'utilisation du spectre visible, mais cela ne rendra pas forcment limage plus "belle".




> En fait je cherche pas la beaut visuelle, ce sont des images destines  la reconnaissance de formes et donc un filtre de contraste est ncessaire pour liminer les bruits (Un petit peu comme le filtre de contraste des logiciels de traitement d'images classiques tel Photoshop).


Tu veux parler de faire un filtre ouverture fermeture pour liminer le bruit ?

----------


## Matthieu Brucher

Je ne pense pas que ce soit un filtre morphologique que Photoshop utilise, mais un filtrage linaire dans sa version de base puis un filtrage non linaire par la suite.

----------


## uranium-design

> Je ne pense pas que ce soit un filtre morphologique que Photoshop utilise, mais un filtrage linaire dans sa version de base puis un filtrage non linaire par la suite.



Ce que je cherche enfait, c'est un algorithme de la fonction contraste similaire  celui de photoshop.

----------


## Matthieu Brucher

Si c'est pour faire du traitement d'image, a ne sert pas  grand chose.

----------


## uranium-design

> Si c'est pour faire du traitement d'image, a ne sert pas  grand chose.


Si si a va servir. C'est une application qui contient un tout petit module de traitement d'image "manuel" pour passer ensuite  la reconnaissance automatique.

----------


## ToTo13

Bonjour,

tu peux trs facilement programmer cela avec la fonction que je t'ai donn :
 -Tu prend une fonction de Bezier  quatres points de controles (ou une fonction similaire)
 - les deux points de contrles extrmes sont en (0,0) et (255, 255)
 - la barre de variation grera l'cartement (sur la droitey=125) des deux points de contrles centraux.

----------

