我正在编写一个程序python使用OpenCV它从我的网络摄像机记录中的镜头检测边缘(Canny Edge Detector)。我还使用两个轨迹条来控制阈值(以便了解这些值如何改变此边缘检测器的输出)。OpenCV奇怪的错误
我写的代码如下:
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()
这个节目是为教育目的,因为我正在学习使用OpenCV的。
我每次运行程序上面的代码似乎是工作得很好,但我得到以下错误:
的GLib,GObject的-CRITICAL **:g_object_unref:断言“G_IS_OBJECT(对象)”失败
我寻找了这个错误发生的原因,但我没有找到有用的东西。我的直觉告诉我,我的轨道栏的实施是错误的,因此它导致了这个错误。
我使用的教程如下:
有谁知道为什么这个错误发生?任何帮助将不胜感激!
我运行Ubuntu 14.04,OpenCV的3.2.0和Python 2.7.6
我做你什么建议(使trackbars并显示在同一个窗口中的图片),它解决了这个问题。你有我的感谢! – NikSotir