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

MATLAB Discussion :

Demande d'explications fonctions MATLAB


Sujet :

MATLAB

  1. #1
    Membre habitué

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 157
    Points
    157
    Par défaut Demande d'explications fonctions MATLAB
    Bonjour,

    Je dois étudier la faisabilité de portage de fonctions de traitement d'images écrites en MATLAB vers du C# (avec utilisation d'une libraire de traitement d'image restant à définir).
    Le souci étant que je ne connais absolument pas le langage MATLAB, j'ai donc les plus grandes difficultés à comprendre ces fonctions et par conséquence à identifier la faisabilité ou non du portage en C#.

    Voici une première fonction.
    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
     
    function bank = solvefuzzy(bank)
    [x y c n] = size(bank);
     
    %First, greyscale the lot by taking the red channel 
    bank = bank(:,:,1,:);
     
    %Now blur it slightly. 
    for (i=1:n) bank(:,:,1,i) = filter2(ones([3 3])/9, bank(:,:,1,i)); end
     
    %Now threshold it. 
    bank = (bank<0.63);
     
    %Now trim the borders. 
    bank(1:x,[1 y],:,:)=0; bank([1 x],1:y,:,:)=0;

    Merci de votre aide,

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    N'importe quelle bibliothèque de calcul scientifique devrait convenir. La seule vraie difficulté ici est le filter2 qui opère un lissage bidimensionnel, mais c'est une opération assez classique et exprimable en termes de calcul matriciel.

    Avant de considérer le portage du code, il est envisageable de compiler en exe ou en lib du code matlab et de les appeler depuis du C.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    la description ligne par ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function bank = solvefuzzy(bank)
    [x y c n] = size(bank);% recupère la taille de la matrice bank. x nbligne y nbcolonne c (couleur rgb ) et n l'indice de l'image ( je suppose que c'est une pile d'image non?)
     
    %First, greyscale the lot by taking the red channel 
    bank = bank(:,:,1,:); % on choisit ici de ne sélectionner que les données dans le rouge donc bank est une matrice de dimension (x,y,1,n) maintenant (on ecrases toutes les autres données)
     
    %Now blur it slightly. 
    for (i=1:n) bank(:,:,1,i) = filter2(ones([3 3])/9, bank(:,:,1,i)); end % filtre moyenneur 3*3 sur toutes les images 
     
    %Now threshold it. 
    bank = (bank<0.63);% binarisation de l'image, si bank(i,j,k,l)<0.63 bank(i,j,k,l)=1 sinon =0;
     
    %Now trim the borders. 
    bank(1:x,[1 y],:,:)=0; bank([1 x],1:y,:,:)=0; % on force les bords  de toutes les images à zeros
    donc d'accord avec VV33D ça ne pause aucun probleme. et au lieu de t'embetter a les réécrires le Matlab peut générer du code C ou des dll selon ce qui se prette le mieux

  4. #4
    Membre habitué

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Points : 157
    Points
    157
    Par défaut
    Le petit souci étant que n'ayant pas Matlab , il ne m'est pas possible de générer le code C correspondant.
    Le code C généré est il autonome ? pas besoin de libraire externe de Matlab ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    d'après mes souvenir oui
    je te laisse te renseigner sur le site de mathworks sur les toolbox matlab coder et matlab compileur
    maintenant cette fonction la en particulier tu n'aura aucun probleme a la refaire en C en partant de rien

    tu recupère tes données tu selectionne les rouge tu fait un filtre moyenneur 3*3 puis tu seuil à 0.63

Discussions similaires

  1. demande d 'explications sur la fonction ATAN2
    Par danyII dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2010, 17h12
  2. Demande des explication sur la fonction récursive
    Par nypahe dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 30/04/2009, 21h11
  3. {VBA Excel} demande d'explication sur la fonction ClearContents
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2007, 15h24
  4. [filter2] Demande d'explication sur cette fonction
    Par ranell dans le forum Images
    Réponses: 3
    Dernier message: 10/05/2007, 09h19
  5. Demande d'explication : "return false"
    Par mickeliette dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/10/2004, 10h06

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