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

Images Discussion :

Inpainting à l'aide de l'équation de diffusion llinéaire


Sujet :

Images

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Par défaut Inpainting à l'aide de l'équation de diffusion llinéaire
    Bonjour,

    Je cherche à réaliser un inpainting sur une image. J'ai un masque. J'y applique le code suivant mais cela ne marche pas...

    Je vous poste le code car j'aimerais bien un peu d'aide!
    ps: mes gradients et ma divergence sont justes (je les ai testé) donc je les remets pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function ImInpaint = LinearImpaint( Im, Im_Mask )
    %LINEARIMPAINT Summary of this function goes here
    %   Detailed explanation goes here
    [m n]=size(Im);
    Im=double(Im);
     
    dt=0.2;
    T=8;
     
    u=Im;
     
    for t=0:dt:T
        p_x=gradx(u);
        p_y=grady(u);
        LapLinear=div(p_x, p_y);
        u=u+dt*LapLinear;
        u(Im_Mask==1)=Im(Im_Mask==1);
    end
     
    ImInpaint = u;
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    clear all;
    close all;
     
    Im_Damaged = imread('parrot_original.png');
    [m n] = size(Im_Damaged);
    Im_Damaged = double(Im_Damaged);
     
    imshow(uint8(Im_Damaged));
    title('Damaged Image');
     
    Im_Mask = imread('parrot_mask.png');
    figure, imshow(Im_Mask);
    title('Mask Image');
     
    for i=1:3
        Im = double(Im_Damaged(:,:,i));    
        ImInpaint = LinearImpaint(Im,Im_Mask);
        Im_ColorInpainted(:,:,i)=ImInpaint;
    end
     
    figure, imshow(uint8(Im_ColorInpainted));
    title('Linear Inpaintaing Image');
    Merci d'avance!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,
    Citation Envoyé par bilou_12 Voir le message
    J'y applique le code suivant mais cela ne marche pas...
    Peux-tu être plus précis? Obtiens-tu un message d'erreur? Si oui, lequel? Obtiens-tu un résultat inattendu? si oui, lequel?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Par défaut
    Oui.

    Le programme ne fait pas ce que je souhaite car il floute toute la photo.
    Idéalement, comme j'ai une photo d'un perroquet derrière une grille (parrot_original) et un masque représentant la grille en noir et le reste en blanc, je souhaiterai qu'il floute les pixels au même coordonnées dans l'image originale que là où il repère le noir de la grille dans le masque!

    C'est ce que j'ai compris de l'inpainting

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/07/2015, 11h51
  2. Équation de diffusion
    Par hasansas dans le forum Mathématiques
    Réponses: 7
    Dernier message: 15/10/2011, 21h25
  3. Réponses: 3
    Dernier message: 08/05/2010, 13h17
  4. Réponses: 4
    Dernier message: 15/02/2010, 10h38
  5. Système d'équations de diffusion non linéaires
    Par Mr-Meuble dans le forum Mathématiques
    Réponses: 2
    Dernier message: 01/04/2009, 03h03

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