How to integrate discrete values over a known x, y coordinate image

3 visualizaciones (últimos 30 días)
I know a digital image f (x, y), and the corresponding power spectrum is obtained by Fourier transform, but I need to request the integration of the power spectrum in an annular area, I want to use integral2 It is, but I only have the value of f (x, y) and the coordinate value (x, y), I do n’t know how to use double integration。
ps:the power spectrum like this
and I want to integrate the power spectrum in an annular region like this
and the integral is
is the power spectrum of the image f(x,y)(A random image),and i calculate it by this
I=fftshift(ft2(image);
s_power = abs(I).^2;
But s_powers is (x, y) coordinate, I could not calculate its double integral, ask for help!SOS!
  4 comentarios
haha mark
haha mark el 13 de Mayo de 2020
I'm sorry to bother you, but I didn't see your homepage prompt when I emailed you. I'm too anxious to solve this problem. I'm sorry to trouble you. I'm very sorry. I didn't intend to disturb you, but I found your answer very helpful. I sincerely beg your forgiveness. I really need your help, sorry to bring you a bad mood
haha mark
haha mark el 13 de Mayo de 2020
I am so sad,I really didn't mean it.I found a question you answered very useful, so I am too eager to ask you, so that I did not click on your personal homepage, I am really sorry, it is indeed my fault, hope you forgive me.

Iniciar sesión para comentar.

Respuesta aceptada

darova
darova el 13 de Mayo de 2020
Here is the idea
% calculate increments
dx = x(2)-x(1);
dy = y(2)-y(1);
% assume A is your image
% assume X and Y are your 2d matrices of coordinates
R = hypot(X,Y); % calculate radius
ix = r1 <= R & R <= r2; % boundaries of integration
A1 = A*0; % preallocation
A1(ix) = A(ix); % region of interest
S = 0;
for i = 1:size(A1,1)
for j = 1:size(A1,2)
s = A1(i:i+1,j:j+1); % 4 neigbour values
S = S + sum(s(:)); % sum values
end
end
S = S*dx*dy/4; % value of integral
  3 comentarios
darova
darova el 14 de Mayo de 2020
You are calculating volume under the the surface
Volume is average height and dx,dy:
I forgot to add this line. It's because you have a complicated shape, you have to sum only nonzero values
s = A1(i:i+1,j:j+1); % 4 neigbour values
if all(s(:))
S = S + sum(s(:)); % sum values
end
Little explanation
haha mark
haha mark el 15 de Mayo de 2020
Thank you very much. I appreciate your answer!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by