You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I have a question about the source code, and that is about the struct Normalize2D in which the function getTransform try to make mean zero and unit variance 2D points: inline void getTransform(double T[3][3]) const { ... double stddevX = sqrt(mXX / N + eX*eX); //sf: this has to be done! double stddevY = sqrt(mYY / N + eY*eY); ... }
The way to compute the standard deviation looks a bit of strange to me. Should not it be: double stddevX = sqrt(mXX / N - eX*eX); double stddevY = sqrt(mYY / N - eY*eY);
I changed and executed but I got a totally wrong result. I don't know why. Are there any skills? Thanks!!
The text was updated successfully, but these errors were encountered:
Thanks for the good catch. I believe this bug is inherited from the original Java code. In fact, according to experiments, setting the scaleX (1./stddevX) to 1 won't affect much of the performance. I'll fix this later.
As about your wrong results, I think it might be due to the fact that you only changed this part but didn't change the getInverseTransform function accordingly.
Hi, I have a question about the source code, and that is about the struct Normalize2D in which the function getTransform try to make mean zero and unit variance 2D points:
inline void getTransform(double T[3][3]) const { ... double stddevX = sqrt(mXX / N + eX*eX); //sf: this has to be done! double stddevY = sqrt(mYY / N + eY*eY); ... }
The way to compute the standard deviation looks a bit of strange to me. Should not it be:
double stddevX = sqrt(mXX / N - eX*eX); double stddevY = sqrt(mYY / N - eY*eY);
I changed and executed but I got a totally wrong result. I don't know why. Are there any skills? Thanks!!
The text was updated successfully, but these errors were encountered: