I'm implementing an ellipse detector using some pdf I found on the internet, but I encounter some difficulties in understanding one of the equations.
Here is the pdf: http://hci.iwr.uni-heidelberg.de/publications/dip/2002/ICPR2002/DATA/07_3_20.PDF
The equations I'm not being able to understand are numbers $5$ and $6$ on the second page, especially number $6$ where i can't figure out how $f$ is calculated.
This is what I've done for now, using C++ with Qt:
for(int i = 0; i < edgePixels.size(); ++i){
for(int j = 0; j < edgePixels.size(); ++j){
majorAxeLength = sqrt(pow((edgePixels.at(j).x() - edgePixels.at(i).x()), 2) + pow((edgePixels.at(j).y() - edgePixels.at(i).y()), 2));
if(majorAxeLength >= 148.9)
{
qDebug() << " Aux points : " << edgePixels.at(i) << " , " << edgePixels.at(j) << " L'axe majeur = " << majorAxeLength;
majorAxeHalfLength = majorAxeLength / 2;
centerX = edgePixels.at(i).x() + edgePixels.at(j).x() / 2.0;
centerY = edgePixels.at(i).y() + edgePixels.at(j).y() / 2.0;
ellipseOrientation = atan(((edgePixels.at(j).y() - edgePixels.at(i).y()) / (edgePixels.at(j).x() - edgePixels.at(i).x())));
for (int k = 0; k < edgePixels.size(); ++k) {
centerToPointDistance = sqrt(pow((edgePixels.at(k).x() - centerX), 2) + pow((edgePixels.at(k).y() - centerY), 2));
if(centerToPointDistance >= 50)
{
qDebug() << " Aux points : " << centerX << " , " << centerY << " , " << edgePixels.at(k) << " L'axe majeur = " << centerToPointDistance;
}
}
}
}
}
Hope you can help me ! Thank you in advance !
