Я хотел бы получить координаты для центроида, и я уже рассчитал ДПФ (для другой цели). Я видел несколько слайдов, которые намекают на возможность получить приблизительную оценку центроида, посмотрев на первые значения матрицы.
Код основан на: http://docs.opencv.org/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html
cv::dft(complexI, complexI);
// compute the magnitude and switch to logarithmic scale
// => log(1 + sqrt(Re(DFT(I))^2 + Im(DFT(I))^2))
cv::split(complexI, planes); // planes[0] = Re(DFT(I), planes[1] = Im(DFT(I))
double x = (double)planes[0].at<int>(0,0)/INT_MAX;
double y = ABS(((double)planes[1].at<int>(0,0)/INT_MAX));
Но каждый раз, когда значение y становится 0. Хотя значение x кажется правильным. Я что-то пропустил?
Это чаще делается с помощью моменты.