Ich schreibe ein Programm in Python mit OpenCV, die die Kanten erkennt (Canny Edge Detector) aus dem Material meiner Webcam Aufzeichnungen. Ich verwende auch zwei Trackbars, um die Schwellenwerte zu steuern (um zu verstehen, wie diese Werte die Ausgabe dieses Flankendetektors verändern).Weird Error in OpenCV
Der Code, den ich geschrieben habe, ist folgende:
import cv2
import numpy as np
def nothing(x):
pass
img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('cannyEdge')
cv2.createTrackbar("minVal", "cannyEdge", 0,100, nothing)
cv2.createTrackbar("maxVal", "cannyEdge", 100,200,nothing)
cap = cv2.VideoCapture(0)
while(True):
minVal = cv2.getTrackbarPos("minVal", "cannyEdge")
maxVal = cv2.getTrackbarPos("maxVal", "cannyEdge")
#capture frame by frame
ret, frame = cap.read()
cv2.imshow('frame', frame)
edge = cv2.Canny(frame,minVal,maxVal)
#display the resulting frame
cv2.imshow('frame', edge)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#When everything is done, release the capture
cap.release
cv2.destroyAllWindows()
Dieses Programm ist nur für Bildungszwecke, wie ich zur Zeit des Lernen OpenCV zu verwenden.
Jedes Mal, wenn ich das Programm laufen über den Code einfach gut zu sein scheint zu funktionieren, aber ich bekomme die folgende Fehler:
Glib-GObject KRITISCHE **: g_object_unref: Behauptung 'G_IS_OBJECT (Objekt)' failed
Ich habe nach dem Grund gesucht, dass dieser Fehler auftritt, aber ich habe nichts hilfreich gefunden. Mein Instinkt sagt mir, dass meine Implementierung für die Trackbars falsch ist und daher diesen Fehler verursacht.
Die Tutorials, die ich verwendet, sind die folgenden:
Weiß jemand, warum tritt dieser Fehler auf? Jede Hilfe wird geschätzt!
Ich bin mit Ubuntu 14.04, OpenCV 3.2.0 und Python 2.7.6
Ich tat, was Sie vorgeschlagen (die trackbars machen und das img im gleichen Fenster angezeigt wird), und es löste das Problem. Du hast meinen Dank !! – NikSotir