1

I am trying to create a simple trackbar to test some edge detection, and I've been following the official opencv tutorial from here in Python. When I run the code, the window is created and I can see the sliders, but when I click the sliders, the kernel crashes.

I tried this with some other code example from the internet and it crashed then as well. Basically the moment I click in the region of the slider, the kernel crashes. I know that one thing you seem to need to do in macs is increase the waitKey time and I did do that.

How can I make this work?

def canny_threshold(low_val, src, src_gray):
    low_threshold = low_val
    img_blur = cv.blur(src_gray, (3,3))
    detected_edges = cv.Canny(img_blur, low_threshold, low_threshold * RATIO)
    mask = detected_edges != 0
    dst = src * (mask[:,:, None].astype(src.dtype))
    return dst


src = cv.imread("magpie_house.jpeg")
src_gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)

def nothing(x):
    pass


cv.namedWindow(WINDOW_NAME)
cv.startWindowThread()
cv.createTrackbar(TITLE_TRACK_BAR, WINDOW_NAME, 0, MAX_LOW_THRESHOLD, nothing)
cv.setTrackbarPos(TITLE_TRACK_BAR, WINDOW_NAME, 50)


while True:
    COUNTER += 1
    if COUNTER >= 700:
        break
    low_val = cv.getTrackbarPos(TITLE_TRACK_BAR, WINDOW_NAME)
    dst = canny_threshold(low_val, src, src_gray)
    cv.imshow(WINDOW_NAME, dst)
    if cv.waitKey(10) & 0xFF == ord("q"):
        break
    

cv.waitKey(1)
cv.destroyAllWindows()

1 Answers1

-1

It appears that there is a known issue on macs regarding trackbars.

  • Please do not post link-only answers, copy over the relevant information with attribution to pair with the link :) – Aaron Meese Aug 17 '22 at 17:01