Я работаю над программой, которая обнаруживает круглые формы на изображениях. Я решил, что Hough Transform будет лучшим, и нашел его в библиотеке OpenCV. Проблема в том, что когда я пытаюсь использовать его, я получаю сообщение об ошибке, которое я не знаю, как исправить. OpenCV для Python реализован не полностью? Нужно ли исправить библиотеку, чтобы программа работала?
Вот код:
import cv
#cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)
while True:
img = cv.QueryFrame(capture)
gray = cv.CreateImage(cv.GetSize(img), 8, 1)
edges = cv.CreateImage(cv.GetSize(img), 8, 1)
cv.CvtColor(img, gray, cv.CV_BGR2GRAY)
cv.Canny(gray, edges, 50, 200, 3)
cv.Smooth(gray, gray, cv.CV_GAUSSIAN, 9, 9)
storage = cv.CreateMat(1, 2, cv.CV_32FC3)
#This is the line that throws the error
cv.HoughCircles(edges, storage, cv.CV_HOUGH_GRADIENT, 2, gray.height/4, 200, 100)
#cv.ShowImage("camera", img)
if cv.WaitKey(10) == 27:
break
И вот ошибка, которую я получаю:
Ошибка OpenCV: пустой указатель () в неизвестной функции,
файл .. \ .. \ .. \ .. \ ocv \ openc \ src \ cxcore \ cxdatastructs.cpp, строка 408
Traceback (последний вызов был последним):
Файл "ellipse-detect-webcam.py", строка 20, в
cv.HoughCircles (ребра, хранилище, cv.CV_HOUGH_GRADIENT, 2, gray.height / 4, 200, 100)
cv.error
Заранее спасибо за помощь.