Мне нужно обнаружить Солнце от космического неба.
Это примеры входных изображений:
 

У меня есть такие результаты после морфологической фильтрации (open операция в два раза)
 

Здесь код алгоритма этой обработки:
// Color to Gray
cvCvtColor(image, gray, CV_RGB2GRAY);
// color threshold
cvThreshold(gray,gray,150,255,CV_THRESH_BINARY);
// Morphologic open for 2 times
cvMorphologyEx( gray, dst, NULL, CV_SHAPE_RECT, CV_MOP_OPEN, 2);
Разве это не слишком тяжелая обработка для такой простой задачи? И как найти центр Солнца? Если я нахожу белые точки, я найду белые точки большой Земли (левый верхний угол на первом примере изображения)
Пожалуйста, сообщите мне, пожалуйста, мои дальнейшие действия по обнаружению Солнца.
ОБНОВЛЕНИЕ 1:
Пытающий алгоритм получения centroid по формуле: {x,y} = {M10/M00, M01/M00}
CvMoments moments;
cvMoments(dst, &moments, 1);
double m00, m10, m01;
m00 = cvGetSpatialMoment(&moments, 0,0);
m10 = cvGetSpatialMoment(&moments, 1,0);
m01 = cvGetSpatialMoment(&moments, 0,1);
// calculating centroid
float centroid_x = m10/m00;
float centroid_y = m01/m00;
    cvCircle( image, 
              cvPoint(cvRound(centroid_x), cvRound(centroid_y)), 
              50, CV_RGB(125,125,0), 4, 8,0);
И где Земля находится на фотографии, я получил такой результат:

Итак, центроид находится на Земле.: (
ОБНОВЛЕНИЕ 2:
Попытка cvHoughCircles:
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* circles = cvHoughCircles(dst, storage, CV_HOUGH_GRADIENT, 12, 
                                dst->width/2, 255, 100, 0, 35);
if ( circles->total > 0 ) {
    // getting first found circle
    float* circle = (float*)cvGetSeqElem( circles, 0 ); 
    // Drawing:
    // green center dot
    cvCircle( image, cvPoint(cvRound(circle[0]),cvRound(circle[1])), 
          3, CV_RGB(0,255,0), -1, 8, 0 ); 
    // wrapping red circle
    cvCircle( image, cvPoint(cvRound(circle[0]),cvRound(circle[1])), 
        cvRound(circle[2]), CV_RGB(255,0,0), 3, 8, 0 ); 
}
 

Первый пример: bingo, а второй - no; (
Я пробовал различную конфигурацию cvHoughCircles() - не смог найти конфигурацию, соответствующую каждой моей примерной фотографии.
Update3:
Подход matchTemplate работал у меня (ответ mevatron). Он работал с большим количеством тестов.




