I'm trying to implement fftshift from matlab for OpenCV. Can you please review the correctness of my algorithm? Have I missed something? Also, is there a better and faster way to do it?cv::Mat ff;cv::dft(distanceF, ff, cv::DFT_COMPLEX_OUTPUT);//Make place for both the complex and the real valuescv::Mat planes[] = {cv::Mat::zeros(distanceF.size(),1, CV_32F), cv::Mat::zeros(distanceF.size(),1, CV_32F)};cv::split(ff, planes);    // planes[0] = Re(DFT(I), planes[1] = Im(DFT(I))cv::vector<float> im(planes[1].cols);cv::vector<float> re(planes[0].cols);int m = planes[0].cols;int p = ceil(m/2);for (int i = 0; i < p; i++){               im[i] = planes[1].at<float>(p + i +1);     im[p +i +1] = planes[1].at<float>(i +1);    re[i] = planes[0].at<float>(p + i +1);     re[p +i +1] = planes[0].at<float>(i +1);}im[p] = planes[1].at<float>(0);re[p] = planes[0].at<float>(0);cv::Mat input[] = {cv::Mat(im),cv::Mat(re)};cv::merge(input,2,ff);
fftshift implementation for OpenCV
c++;computational geometry;matlab;signal processing;opencv