Matlab - perform a function of all matrix cells

Hello,
I have loaded a grayscale image into img so now I have a one matrix in it.
Now I used plot to show a graph of a function and I would like to use this function over all of the matrix values and actually change the gray values of the image.
I do know the "A(A>0) = value" function but I'm not sure how to use it with the plot I've made.
XData=get(get(gca,'children'),'XData');
YData=get(get(gca,'children'),'YData');
% Get y value for x=3.33 - NOT a data point.
y_3p33 = interp1(XData,YData,3.33,'spline')
(c) paulo silva http://www.mathworks.com/matlabcentral/answers/1353 so this is actually the way of getting the new Y point for each value but how can I use it over all the matrix cells in a fast way? (actually in any way)
thank you!

1 Kommentar

Jan
Jan am 13 Nov. 2012
Please use meaningful tags. Obviously all questions in thius forum concern "matlab code".
Do you mean "matrix elements"? "Cells" are a special type of arrays, which can contain elements of different types.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Jan
Jan am 13 Nov. 2012

0 Stimmen

Please use meaningful tags. Obviously all questions in thius forum concern "matlab code".
Do you mean "matrix elements"? "Cells" are a special type of arrays, which can contain elements of different types.
I do not see the connection between the XData and YData of your graph and the loaded image. What exactly is a "one matrix"? Are you looking for:
A2 = reshape(interp1(XData,YData, A(:), 'spline'), size(A));
Despairy
Despairy am 13 Nov. 2012

0 Stimmen

img=imread('filename');
so img now holds a matrix (the file is a grayscale image) of the gray values of the image.
now I have a plotted function on axes1
lets say f(100)=20
and f(250)=50
so now I want the gray values to change according to the function plotted from what I read about the reshape function it is not exactly what I'm lookin for.
actually what I want is the following to happen
A(A=100)=20
A(A=250)=50
but for all of the values between 0 and 255 using the function plotted.
thanks for your help

Gefragt:

am 13 Nov. 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by