Я считаю, что из исходного кода (для версии 2.1) он использует градиенты изображения для оптимизации местоположения ...
cv.h:
997 /* Adjust corner position using some sort of gradient search */
998 CVAPI(void) cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners,
999 int count, CvSize win, CvSize zero_zone,
1000 CvTermCriteria criteria );
Документация для функции также описывает это - в частности, характер используемой целевой функции:
http://opencv.willowgarage.com/documentation/c/imgproc_feature_detection.html?highlight=findcornersubpix#cvFindCornerSubPix
Более подробные сведения об операции находятся в файле cvcornersubpix.cpp. Глядя на это, можно ясно увидеть, что функция вычисляет производные области поиска и строит матрицу Гессе ...
Другими словами, насколько я понимаю, стандартный метод сопряженных градиентов!
Версия 2.2 OpenCV (самая современная), похоже, больше не имеет этой функции.