Re: surface plot of an image
- To: mathgroup at smc.vnet.net
- Subject: [mg70921] Re: surface plot of an image
- From: bghiggins at ucdavis.edu
- Date: Wed, 1 Nov 2006 03:56:21 -0500 (EST)
- References: <ei4mb2$e2t$1@smc.vnet.net>
Ale,
Suppose you have imported your grayscale image and it is called
myimage. This should be an 2-D array of real numbers between 0 and 1.
The function ListInterpolation takes a matrix of real numbers and then
returns an InterpolationFunction that allows one to treat the image as
a continuous function.
myinterpolationImage=ListInterpolation[myimage]
The output should look like
InterpolatingFunction[{{1., 336.}, {1., 448.}}, <>]
where the original image had dimensions (336 , 448)
Now suppose we want to see how the image varies at some x value. Well
we can plot myinterpolationImage for that x-value, say x=150 :
Plot[myinterpolationImage[150, y], {y, 1, 448}, PlotStyle ->
RGBColor[0, 0, 1]];
One can also get a 3D plot of myinterpolationImage over a selected
range:
Plot3D[myinterpolationImage[x, y], {x, 1, 300}, {y, 1, 400}, PlotPoints
-> 50,
Axes -> False, Boxed -> False, ViewPoint -> {0.801, -1.730,
2.796}];
Hope this helps
Cheers
Brian
alemarabi at gmail.com wrote:
> Hi,
>
> I have a microscopy image in gray levels and would like to convert it
> to a surface plot, in order to visualize the differences in grey values
> accros the picture.
> Is there an easy (or already) existing way to do that?
> Thank you in advance,
>
> Ale