How to integrate discrete values over a known x, y coordinate image
6 次查看(过去 30 天)
显示 更早的评论
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!
采纳的回答
darova
2020-5-13
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 个评论
darova
2020-5-14
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
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!