I have recently left the safe and easy MATLAB environment and begun to use CUDA-C/C++ for image processing. Since CUDA doesn't allow 2D arrays to be passed into kernels I am now used to linearizing my gray-scale images (2D matrices) into 1D arrays before processing them. I seem to have no problem applying 1D-DFT's to my linearzied arrays. This leads me to wonder why people use 2D-DFT's at all? Why not just linearize your matrices into 1D-arrays and apply 1D-DFT's?
Can 1D-DFT's always operate on 2D-data by simply laying the matrix out into a 1D array?