I am facing a problem: performing 1D FFT on a rotated column by column on a rotated image, described as following:
Original Image:

Rotated Image:

What I have:
- original image
- convolution kernel for the rotated image.
what I'd like to do:
- perform the 1D FFT (image domain convolution, or frequency domain multiplication) on the ROTATED image.
Something like this:

However, from implementation point of view, then I need to do image rotation, then apply the 1D FFT, and it is an expensive implementation and execution at run time.
So, I am wondering, instead of rotating the image, how can I change my convolution kernel such that I can apply it to the original image? can I rotate the 1D FFT convolution kernel? If so, should I do it in frequency domain, or image domain? And how? Or any resources and literatures? Thanks a lot.
You can not rotate the fourier domain if you only perform a 1D FFT, since then you will lose information. If you had done you could have theoretically speaking have rotated the resulting FFT image, but it would not have saved any calculations if you did so.
You will need to do some interpolation at some point for the rotation. But it will always be the same size of neighbouring pixels you will need to consider. So you can for each output pixel position calculate where it is from, interpolate the value from there and then use the locality in memory and that FFT is sparse (only two data points on each row for each "factor").
If I am not remembering incorrectly, the first factor is linear combinations of spatially close points anyway.