NikSotir
NikSotir

Reputation: 40

Weird Error in OpenCV

I'm writing a program in python using OpenCV which detects the edges (Canny Edge Detector) from the footage my webcam records. I'm also using two track-bars in order to control the threshold values (in order for to understand how these values change the output of this edge detector).

The code I wrote is the following:

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()

This program is for educational purposes only as I'm currently learning to use OpenCV.

Every time I run the program above the code seems to be working just fine but I get the following Error:

GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

I've searched for the reason this error occurs but I haven't found anything helpful. My instinct tells me that my implementation for the trackbars is wrong and thus it's causing this error.

The tutorials I used are the following:

Does anybody know why this error occurs? Any help will be appreciated!

I am running Ubuntu 14.04, OpenCV 3.2.0 and Python 2.7.6

Upvotes: 2

Views: 1601

Answers (2)

LeopoldVonBuschLight
LeopoldVonBuschLight

Reputation: 911

Have you created another window named "frame"? If not, it looks like you should change 'frame' to 'cannyEdge':

cv2.imshow('cannyEdge', frame)

Upvotes: 1

I.Newton
I.Newton

Reputation: 1783

Try making the track bars and displaying the image in the same window and see if the error persists. I bet it shouldn't. Change: cv2.imshow('cannyEdge', edge)

Upvotes: 1

Related Questions