Аномалия с установкой эллипса при использовании cv2.ellipse с различными параметрами?

Я использую OpenCV 2.4.11 с Python 2.7.9 в Windows 8.1. Я пытался нанести эллипсы на мои контуры, и я наткнулся на то, что не могу понять.

Когда я вызываю cv2.fitEllipse и получаю возвращаемое значение, а затем передаю возвращаемое значение непосредственно в cv2.ellipse со следующим кодом, эллипсы, нарисованные на экране, идеальны и оптимально подходят для моих контуров:

  • Как вы совмещаете изображение с другим изображением с PIL в Python?
  • Асинхронно считывает и обрабатывает изображение в python
  • Применение цветного наложения к изображению в PIL или Imagemagik
  • Преобразование изображения из PIL в формат openCV
  • Как обнаружить Рождественскую елку?
  • Обнаружение надежной руки через компьютерное зрение
  • contours, hierarchy = cv2.findContours(binaryimage,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) for ind, cont in enumerate(contours): elps = cv2.fitEllipse(cont) #Feed elps directly into cv2.ellipse cv2.ellipse(displayframe,elps,(0,0,255)) cv2.imshow("Perfectly fitted ellipses", displayframe) 

    Результаты для вышеизложенного

    введите описание изображения здесь

    Однако, когда я пытаюсь проанализировать фактические параметры эллипса и нарисовать эллипс вручную, передав эти параметры (см. Код ниже), он создает «раздутую» версию эллипса, которая дает очень удобную (но раздражающую) скобку пространства вокруг контура, следующим образом:

     contours, hierarchy = cv2.findContours(binaryimage,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) for ind, cont in enumerate(contours): (x,y),(MA,ma),angle = cv2.fitEllipse(cont) #feed the parsed parameters into cv2.ellipse cv2.ellipse(displayframe,(x,y),(MA, ma),angle,0,360,(0,0,255)) cv2.imshow("Ellipses NOT fitting the contours properly",displayframe) 

    Результатами этого раздражающего явления являются:

    введите описание изображения здесь

    Да, я знаю, что использование первого метода решает проблему рисования правильных эллипсов. Но я хочу знать, почему он это делает, потому что на самом деле мне понадобятся параметры эллипсов, чтобы выполнить какое-то отслеживание blob, и если анализируемые параметры заканчиваются тем, что дают широкие непригодные эллипсы, действительно ли это точный? Проблема с функцией cv2.ellipse ()? Любые идеи о том, что происходит не так? Точные параметры эллипса, выходящие из функции cv2.fitEllipse?

  • Не удается открыть видео с помощью opencv
  • Ошибка при использовании knnMatch с OpenCV + Python
  • matplotlib autoscale (ось = 'y') после участка нарезки с помощью set_xlim ()
  • Подсчет автомобилей OpenCV + Python Issue
  • Как обнаружить Рождественскую елку?
  • наложение меньшего изображения на большее изображение python OpenCv
  • One Solution collect form web for “Аномалия с установкой эллипса при использовании cv2.ellipse с различными параметрами?”

    Вы рисуете ширину и высоту возвращаемого ограничивающего прямоугольника. Вы должны построить половину ширины и высоты, так как оси эллипса будут половинной ширины и высоты его ограничивающей рамки

     cv2.ellipse(displayframe,(x,y),(MA/2, ma/2),angle,0,360,(0,0,255)) 
    Python - лучший язык программирования в мире.