IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Utilisation de LUT


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Par défaut Utilisation de LUT
    Bonjour,

    Je regarde l'utilisation de LUT pour accélérer les processus de traitement d'image. J'ai vu dans le cas d'utilisation de LUT 1D pouvait permettre de changer une valeur dans une image par une autre. Exemple si on veux que les valeurs 15 18 19 d'un pixel soient remplacés par zéro.

    Je voudrais savoir si on peut utiliser un LUT nD dans le cas de transformation d'image type rotation. On aurait donc une image source avec des pixels ps(xs,ys) et une image de destination pd(xd,yd). Je voudrais avoir un tableau qui redirige la valeur de ps(xs,ys) dans pd(xd,yd) que j'aurais déterminer.
    De telle sorte que pour chaque pixel de l'image d'origine, il y ait un pixel dans l'image de destination, on créerait un couple {ps(xs,ys),pd(xd,yd)}

    On peut faire ca avec un cvLUT?

    Si quelqu'un pouvait m'aider sur cette question.

    D'avance merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Par défaut
    Je suis pas convaincu que tu aies vraiment besoin de cvLut
    Il te faut simplement une hashmap de points ou mieux, tu recrées ton type

    quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    struct lut {
    cv::Point ps;
    cv::Point pd;};
    puis tu utilise un std::vector<lut> luts; pour contenir tous tes associations de points ps et pd.
    Si après tu veux retrouver la valeur de ton pixel, tu fais comme ça
    imgS.at<cv::Vec3b>(luts.at(idx).ps)) où idx est l'index de ton association pour ce point ps. (imgS = image source)
    Tu auras donc théoriquement la même valeur que dans imgD.at<cv::Vec3b>(luts.at(idx).pd))
    (imgD = image Destination).

    après si tu veux réapplique la même transformation à une autre image, tu feras surement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(int i = 0; i < luts.size(); i++)
    imgDD.at<cv::Vec3b>(luts.at(i).pd) = imgSS.at<cv::Vec3b>(luts.at(i).ps)
    avec imgDD l'image imgSS transformée par la transformation présente dans "luts".

    Le plus difficile restera surement à savoir comment tu remplies ton vecteur de lut :p

    Note : J'ai testé aucun des codes précédents, il faudra peut être les adapter.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo