Haftungsausschluss: großer openCV-Neuling
Traceback (letzter Aufruf):
Datei "lanes2.py", Zeile 22, in
canny = canny(spur_bild)
Datei "lanes2.py", Zeile 5, in canny
grau = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)
TypeError: Erwartetes cv::UMat für das Argument 'src'
Auf was genau bezieht sich 'src'?
src" ist das erste Argument für "cv2.cvtColor".
Der Fehler, den Sie bekommen, liegt daran, dass es nicht die richtige Form ist. cv2.Umat()" ist funktional äquivalent zu "np.float32()", also sollte Ihre letzte Codezeile lauten:
grau = (np.float32(imgUMat), cv2.COLOR_RGB2GRAY)
gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)
UMat ist ein Teil der Transparenten API (TAPI) und hilft dabei, einen Code für die CPU- und OpenCL-Implementierungen zu schreiben.
Ist canny
Ihre eigene Funktion? Verwenden Sie Canny aus OpenCV darin? Wenn ja, prüfen Sie, ob Sie geeignete Argumente für Canny
eingeben - das erste Canny
Argument sollte folgende Kriterien erfüllen:
<type 'numpy.ndarray'>
dtype('uint8')
Form
sollte ein 2-Tupel
von int
sein (Tupel
enthält genau 2 Ganzzahlen)Sie können dies überprüfen, indem Sie Folgendes ausdrucken
type(variable_name)
variable_name.dtype
variable_name.shape
Ersetzen Sie variable_name
durch den Namen der Variable, die Sie als erstes Argument an Canny
übergeben.