Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1140 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  [Analyse d'image numérique]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Analyse d'image numérique]

n°1277614
_pollux_
Pan ! t'es mort
Posté le 05-01-2006 à 14:34:30  profilanswer
 

Bonjour,
 
J'ai un soucis que je souhaiterais résoudre avec matlab  (je n'ai aucune formation en programmation, ou alors si peu...) .
L'idée, c'est de définir l'endroit ou tape un laser rouge sur une feuille plus ou moins blanche (en fait, la multitude d'endroits, liée à une expérience type fentes d'young).
 
Mon premier problème, c'est de définir les zones irradiées par le laser. Au départ, je m'étais dit que j'allais récupérer la composante rouge, mais malheureusement, sur une feuille blanche, la composante rouge est, disons... elevée partout (quasi autant que les points rouge que je veux extraire).
 
Il me faut donc une solution pour réveler le rouge visible dans mon fichier parsé ( x, y, [r g b] ).
 
Une idée, des spécialistes ? :/

mood
Publicité
Posté le 05-01-2006 à 14:34:30  profilanswer
 

n°1277623
mechkurt
Posté le 05-01-2006 à 14:42:32  profilanswer
 

 :pt1cable:  Chercher des endroit ou il n'y a ni vert ni bleu ?   :pt1cable:


---------------
D3
n°1277626
_pollux_
Pan ! t'es mort
Posté le 05-01-2006 à 14:47:04  profilanswer
 

mechkurt a écrit :

:pt1cable:  Chercher des endroit ou il n'y a ni vert ni bleu ?   :pt1cable:


C'est pas con :/

n°1277633
_pollux_
Pan ! t'es mort
Posté le 05-01-2006 à 14:50:00  profilanswer
 

Mais je viens de vérifier, il y a plus de vert et de bleu dans mon rouge que sur la feuille :/

n°1277636
_pollux_
Pan ! t'es mort
Posté le 05-01-2006 à 14:52:46  profilanswer
 

http://img368.imageshack.us/img368/1695/pb3lw.th.jpg
 
voilà l'exemple directement :/
 
A l'avenir, je virerai la règle, mais le problème d'analyse sera le même.


Message édité par _pollux_ le 05-01-2006 à 14:53:31
n°1277643
mechkurt
Posté le 05-01-2006 à 14:59:20  profilanswer
 

ouah, vu ton eclairage tout pourris tu n'as qu'a chercher les points lumineux par opposition a la feuille sombre c.a.d. ayant un r,g et b élevé...


---------------
D3
n°1277646
_pollux_
Pan ! t'es mort
Posté le 05-01-2006 à 15:03:22  profilanswer
 

mechkurt a écrit :

ouah, vu ton eclairage tout pourris tu n'as qu'a chercher les points lumineux par opposition a la feuille sombre c.a.d. ayant un r,g et b élevé...


HUm, il était pourri pour cette fois ci, mais a l'avenir, je pourrais augmenter l'eclairage sans problème je pense. Ce ne sont pas ici les données que je traiterai à l'avenir, mais je préfère me mettre dans les conditions les moins bonnes pour être sûr que ça marche ensuite.
 
En fait, en jouant avec les outils courbes de couleur dans gimp, je peux réussir à relever considérablement le rouge et à virer les autres couleurs. Problème, je ne sais pas comment gimp fonctionne pour faire celà, et je me vois mal analyser les ressources de gimp :/
 
ya personne qui a déjà fait ce genre de bidouille qui semble assez commune ?

n°1277715
bjone
Insert booze to continue
Posté le 05-01-2006 à 17:42:43  profilanswer
 

ça peut être compliqué....  
 
sinon vu que ton contexte est assez restreint (laser rouge/feuille blanche), y'a des méthodes crades qui peuvent marcher.
 
tu fais une comparaison de domaines, style tu donnes une plage de détection R[ de 255 à 100 ],V & B [de 150 à 0]
 
 
sinon par exemple tu prends ton triplet R,V,B, tu le considères comme un vecteur, tu le normalises: r,v,b / sqrt(R²+V²+B²) et plus le R s'approche de 1, plus tu tends vers le rouge pur....
 
sinon après y'a tout ce qui est fft...
 
enfin c'est pas top du tout ce que je te proposes, mais ça peut être un début....
 

n°1277963
_pollux_
Pan ! t'es mort
Posté le 06-01-2006 à 01:41:36  profilanswer
 

hum, je vais essayer le truc de la normalisation, merci pour l'aide :)

n°1278057
rufo
Pas me confondre avec Lycos!
Posté le 06-01-2006 à 11:02:32  profilanswer
 

Je viens de faire un premier test avec photoshop sur ton image telle quelle. Un seuillage noir/blanc à 128 donne un bon résultat mais y'a qq tâches qui restent. Le point rouge devient blanc. Un seuillage à 180 laisse uniquement le point rouge du centre. En améliorant un peu l'éclairage de la feuille, le seuillage devrait donner un meilleur résultat (avoir le point du laser plus la ligne horizontale diffuse).

mood
Publicité
Posté le 06-01-2006 à 11:02:32  profilanswer
 

n°1278062
bjone
Insert booze to continue
Posté le 06-01-2006 à 11:05:08  profilanswer
 

bin c'est une idée, après regarde si tu peux pas trouver un truc limite plus simple et efficace. (y'a ptet moyen d'avoir un filtre qui fasse ressortir les élévations de rouge...)

n°1278072
rufo
Pas me confondre avec Lycos!
Posté le 06-01-2006 à 11:17:50  profilanswer
 

autre méthode (toujours testé avec Photoshop)
- passer la luminosité à -60 (je pense que ce sont des %)
- passer le contraste à +50 (% aussi je pense)
- seuil à 60 (là, ce sont pas des %, mais la valeur de la composante grise)
Voilà le résultat :  
http://img208.imageshack.us/img208/6123/pb3lwresult0la.th.jpg

n°1278113
_pollux_
Pan ! t'es mort
Posté le 06-01-2006 à 12:10:01  profilanswer
 

merci pour les tests. En fait, j'avais déjà essayé avec gimp, en jouant sur les seuils, il y a moyen d'obtenir un truc très bien. Mais je sais pas exactement ce que gimp fait dans ce cas.  
Donc, j'ai fait un truc à ma sauce. En fait, je prends sur chaque point le minimum de R, G ou B, et je le soustrait à l'ensemble. . Conséquence, tout ce qui était gris devient noir et le rouge est diminué (ce qui n'est pas trop génant). Ensuite, je récupère seulement le R et j'analyse tout ça :)
 
Maintenant, je me bats sur la détermination des pics obtenus, mais c'est une autre histoire :D


Message édité par _pollux_ le 06-01-2006 à 12:10:14
n°1278781
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 07-01-2006 à 17:05:15  profilanswer
 

Je suis sur le même genre de problème en ce moment, je cherche à détecter dans une image de webcam des diodes rouge/verte/bleue, et uniquement ces diodes. Le problème c'est que ca repose sur de la calibration très empirique pour empêcher que d'autres parties de l'image s oient vues comme les  diodes :/ En plus de face les diodes sont blanches pour la webcam, pas simple pour les différencier :/


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1278938
chicotruss
Posté le 08-01-2006 à 03:21:26  profilanswer
 

Tu peux essayer d'utiliser un autre espace colorimétrique que le RGB
 
Essaye l' YCbCr (aussi appelé YUV).
La formule de conversion est assez simple (un produit de matrice je crois et vu que tu est en matlab, il y a peut etre une formule toute prête)
 
Le Y est la luminance (intensité lumineuse) elle doit être plutot élevée à l'endroit frappé par ton laser
Tu peux peut également extraire des informations de la composante Cr (chrominance rouge = différence entre la luminance et la couleur rouge)
 
Une manière simple pour voir si tu peux tirer qqch de cette méthode est de faire la conversion en YUV puis d'afficher séparément chaque composante.

n°1284829
fra0
Posté le 16-01-2006 à 18:19:11  profilanswer
 

le Y contient plein de détails innoportuns...
 
Par contre le 'a' de Cielab contient uniquement le laser, ni la règle, ni l'ombre sur la feuille.
 
Sinon avec les Niveaux, Entrée 253, Sortie 255. Puis désaturation, à priori les pixels non-blancs viennent du laser.
 

n°1285194
_pollux_
Pan ! t'es mort
Posté le 17-01-2006 à 01:07:49  profilanswer
 

entre temps, j'ai fais ça :)
 

Code :
  1. jpg = imread(strcat(pathname,filename));
  2. taille_jpg = size(jpg);
  3. image(jpg,'parent',handles.axe_image)
  4. for i=1:taille_jpg(1,1)
  5.     for j=1:taille_jpg(1,2)
  6.         minimum = min(jpg(i,j,2),jpg(i,j,3));
  7.         jpg(i,j,1)=jpg(i,j,1)-minimum;
  8.         jpg(i,j,2)=jpg(i,j,2)-minimum;
  9.         jpg(i,j,3)=jpg(i,j,3)-minimum;
  10.         jpg=jpg;
  11.     end
  12. end


ça consiste simplement à retirer la valeur la plus faible de l'une des trois composantes R,G ou B
 
et le résultat est tout à fait correct (simplement, le spot saturé du laser devient noir, mais ça ne pose pas un problème trop important pour mes résultats finaux :) )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  [Analyse d'image numérique]

 

Sujets relatifs
empecher une image de fond de se répeterUne "image" 404 qui remplace une image inexistante ?
pb d'affichage et ensertion image gd avec base mysqlimage decoupée et texte correspondant
image en filigraneBloc de texte de taille fixe / centré sur la page + image ?
Forcer la réactualisation d'une image ?Uploader image?
Image dans un emailImage dynamique
Plus de sujets relatifs à : [Analyse d'image numérique]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR