Extracting direction of dominant sinusoids from an image in terms of angles
The following should work


Perform FFT


$$F(u,v) = \mathcal{F}[f](x,y)$$


Multiply magnitude by 2nd order circular harmonic and sum


$$c = \sum_u \sum_v |F(u,v)|  e^{i 2 \phi}$$

where $\phi = \arg (u + iv)$ 


Angle is half of argument


$$\theta = \arg(c) / 2 $$

Here is some matlab code:

I = rgb2gray(imread('eNb2pye.jpg'));
F = fft2(I);
[~,~,r,th] = FFTMesh(size(I));
c = sum(sum(abs(F) .* exp(1i.*2.*th)));
direction = angle(c)/2


which uses the following function to general the spectrum u,v and radial coordinates

function [ux,uy,r,th] = FFTMesh(sizeM)
rows = sizeM(1);
cols = sizeM(2);
[ux, uy] = meshgrid(([1:cols]-(fix(cols/2)+1))/(cols-mod(cols,2)), ...
    ([1:rows]-(fix(rows/2)+1))/(rows-mod(rows,2)));
ux = ifftshift(ux);   % Quadrant shift to put 0 frequency at the corners
uy = ifftshift(uy);
% Convert to polar coordinates
th = atan2(uy,ux);
r = sqrt(ux.^2 + uy.^2);
end