Lire et interpoler une image....

Avant de commencer... les options.

SetOptions[ListDensityPlot, Mesh -> False, 
        AspectRatio -> Automatic];

Pour lire une image, faire Import.
    Attention: l'image est sous forme de graphique, alors il faut aller chercher les donnees a l'interieur avec [[1,1]]

a = Import["img0001.ppm"];
img = a[[1, 1]];

On peut afficher l'image directement...

Show[a];

L'image est de dimension <y,x,rgb>...

Dimensions[img]

On peut convertir en gris...

gris[v_] := Norm[v];

igris = N[Map[gris, img, {2}]];

On peut extraire le r,g,b separement...

irgb = Transpose[img, {2, 3, 1}];
Dimensions[irgb]
{ir, ig, ib} = irgb;

On peut afficher les donees images directement...

ListDensityPlot[igris]
ListDensityPlot[ir]
ListDensityPlot[ig]
ListDensityPlot[ib]

On

On peut creer une fonction qui interpole l'image en tous points...

imf = 
        ListInterpolation[igris, InterpolationOrder -> 1];

igris[[1, 4]]
igris[[1, 5]]

imf[1, 4]
imf[1, 5]
imf[1, 4.5]

Show[{ListPlot[Take[igris[[1]], 40], PlotRange -> All, 
          PlotStyle -> PointSize[0.01]], 
Plot[
          imf[1, x], {x, 1, 40}]}]

imf[10, 10.5]

rot[a_, {cx_, cy_}, {x_, y_}] := 
        N[{{Cos[a], Sin[a]}, {-Sin[a], Cos[a]}} . {x - cx, 
                y - cy}] + {cx, cy};

rot[Pi/4, {0, 0}, {x, y}]

toto[{x_, y_}] := imf[x, y];
toto[{x_, y_}] := 
        0  /;  (x < 1  ||  x > 213  ||  y < 1  ||  
              y > 320);

z = 
        Table[toto[rot[Pi/16, {100, 160}, {y, x}]], {y, 1, 213, 1}, {x, 1, 
            320, 1}];

ListDensityPlot[z]

?? ListInterpolation