Correction TP transport optimal


/// Transport 1D

function [iX,iY] = transport1D(X,Y)
 [Xs,iX] = gsort(X,'g','i'); // on a Xs = X(iX)
 [Ys,iY] = gsort(Y,'g','i');
endfunction


// Calcule l'assignent en 2D et evalue le coût total du transport

function [Z,c]=transport2D(X,Y,N,e) 
// X et Y deux nuages de points en 2D ; matrice 2 colonnes et n lignes. La fonction renvoie un nuage de points Z qui est obtenu par déplacement de X vers les points de Y.
 
  theta = %pi/2*(2*rand(N,1)-1);
  Z=X;
  for k=1:N
    utheta = [cos(theta(k));sin(theta(k))];
    Zt = Z*utheta;
    Yt = Y*utheta;
    [iZ,iY] = transport1D(Zt,Yt);
    Z(iZ,:) = Z(iZ,:)+e*(Yt(iY)-Zt(iZ))*utheta';
    D=sqrt(sum((Z(iZ,:)-Y(iY,:)).^2,2));
   if (max(D)<1D-05) then
      mprintf('stop a k=%d\n',k);
      break;
    end
  end
 c = sum(sum((X(iZ,:)-Y(iY,:)).^2,2))
endfunction



Correction TP Edition d’images

  • Correction pour le TP Edition d’images
  • ////////////////////////////////////////////////////////////////////
    // Function COLOR_POISSON 
    // Take two color images u and v and a binary mask. The image //v is assumed to be smaller than u. First a subimage of u 
    // with the size of v is extracted at (x,y). Then, we copy the // part of v corresponding to the mask to this subimage of u, // and then u is reformed. 
    // Author : Julie Delon, 2015. 
    ////////////////////////////////////////////////////////////////////
    
    // Input parameters 
    // - image u (large image)
    // - image v (small image with portion to be copied in u)
    // - mask (binary mask)
    // - (x,y) integers, position in u where a portion of v must 
    // be copied
    
    // Output :
    // - image out containing u and a portion of v cloned by 
    // Poisson Editing
    
    function out = color_poisson(u, v, mask, x, y, niter)
     [nr,nc] = size(v(:,:,1));
     ucrop = u(x:x+nr-1,y:y+nc-1,:); 
    
     for i = 1:3
     tmp(:,:,i) = poisson(ucrop(:,:,i),v(:,:,i),mask,niter);
     end
    
     out = u;
     out(x:x+nr-1,y:y+nc-1,:) = tmp;
     out = max(min(out,255),0);
    
    endfunction
    
    // Poisson editing for gray level images
    function out = poisson(u, v, mask, niter)
    
     f = u.*(1-mask) + v.*mask;
     K=[0,1,0;1,0,1;0,1,0];
     lapv = laplacien(v);
     
     for k = 1:niter
     Kf = conv2(f,K,'same');
     f(mask) = 1/4*(Kf(mask) + lapv(mask));
     end
    
     out = f;
    endfunction
    
    // Compute the laplacian of an image u
    function lap = laplacien(u)
    
     [ud,ub,ug,uh] = imdiff(u);
     lap = ud + ub + ug + uh;
    
    endfunction
    
    
    function [ud,ub,ug,uh] = imdiff(u)
    
     Kd = [ 0,1, -1 ];
     Kb = [ 0;1; -1 ];
     Kg = [ -1,1, 0 ];
     Kh = [ -1;1; 0 ];
    
     ud = conv2(u,Kd,'same');
     ub = conv2(u,Kb,'same');
     ug = conv2(u,Kg,'same');
     uh = conv2(u,Kh,'same');
    
    endfunction

Comment venir ?

Mon bureau se trouve au 7ème étage du centre universitaire des Saints-Pères.

  1. Se rendre au 45 rue des Saints-Pères, Paris 6ème (métro “St-Germain des Prés”).
  2. Entrer dans le bâtiment par l’entrée principale.
  3. Poursuivre dans le hall puis à droite. Il y a deux ascenseurs sur la gauche, de chaque côté de l’escalier.
  4. Prendre l’ascenseur jusqu’au 7ème étage (ou les escaliers si vous êtes sportif.ve ou si les ascenseurs ne fonctionnent pas…).
  5. A la sortie de l’ascenseur prendre à droite (pour les escaliers, prendre à gauche une fois arrivé au 7ème étage).
  6. Entrer dans le couloir “Matématologie” et aller tout au bout du couloir. Prendre la dernière porte à gauche pour entrer dans l’aile Turing. Mon bureau est au fond à gauche (bureau 752).

Si vous cherchez la salle du conseil, elle est à droite dans le même couloir (avant dernière porte).

 

LateX

LaTeX est un langage (libre et gratuit)  particulièrement pratique pour rédiger des documents scientifiques, sans doute le meilleur moyen de rédiger un document contenant des mathématiques. C’est un langage à balises, comme le HTML. Les documents sont rédigés en LaTeX puis compilés pour générer un document PDF.

Installer LaTeX

  • Linux : installer le package « texlive »
  • Windows : MikTeX
  • OSX : MacTex

Editer un document LaTeX

Les sources LaTeX peuvent être éditées avec n’importe quel éditeur de texte (comme Emacs par exemple, ou Aquamacs sous OSX). Certains éditeurs proposent une interface permettant d’utiliser LaTeX plus facilement, par exemple :

Pour les débutants réfractaires au code, je conseille l’utilisation de LyX, qui permet d’écrire un document en LaTeX avec une interface graphique type Word.

Comment commencer à rédiger un document ?

Vous trouverez ici deux fichiers modèles pour rédiger en LaTeX (merci à Eric Luçon pour ces modèles) :

De nombreux tutoriels sont disponibles sur internet pour utiliser LaTeX, je vous recommande en particulier cette courte introduction (en français) et la fameuse « not so short » introduction to LaTeX (traduite en français ici).

Comment faire des figures ?

Une bonne option pour créer des illustrations est d’utiliser un logiciel de dessin vectoriel comme Inkscape, qui est gratuit et disponible sur toutes les plateformes. Inkscape produit des fichiers au format SVG, mais permet de les exporter dans des formats très variés (notamment le pdf vectoriel).