我们将会建立一个简单的应用,显示我们指定的颜色。将会建立一个窗口,显示三个trackbar指定RGB三个颜色通道值。可以滑动trackbar来改变相应的颜色。默认情况下,初始颜色为黑色。
cv2.getTrackbarPos()
函数,第一个参数为trackbar名称,第二个参数为window的名称以指定该trackbar将会绑定到哪个窗口。第三个参数为trackbar的初始默认值,第四个参数为最大值,第五个参数为trackbar的回调函数(callback function),每一次trackbar值发生改变都会自动调用其指定的callback。callback函数中由默认由一个获取当前trackbar值得参数。本例中,我们的callback并没有什么操作。
trackbar的另一个重要的应用是用作开关或按钮。opencv默认并没有button功能。所以你可以使用trackbar实现按钮的功能,在我们的应用中,我们创建了一个开关(switch),我们的demo仅在swith为on的时候工作。
import cv2 import numpy as np def nothing(x): pass #创建一个褐色背景图和一个窗口 img = np.zeros( (300, 512, 3), np.uint8) cv2.namedWindow(‘image‘, cv2.WINDOW_NORMAL) #创建3个trackbar cv2.createTrackbar(‘R‘, ‘image‘, 0, 255, nothing) cv2.createTrackbar(‘G‘, ‘image‘, 0, 255, nothing) cv2.createTrackbar(‘B‘, ‘image‘, 0, 255, nothing) #用trackbar创建一个开关 switch = r‘0: OFF\n 1:ON‘ cv2.createTrackbar(switch, ‘image‘, 0, 1, nothing) while True: cv2.imshow(‘image‘, img) k = cv2.waitKey(1) if k == 27: break #获取当前trackbar的位置 r = cv2.getTrackbarPos(‘R‘, ‘image‘) g = cv2.getTrackbarPos(‘G‘, ‘image‘) b = cv2.getTrackbarPos(‘B‘, ‘image‘) s = cv2.getTrackbarPos(switch, ‘image‘) if s == 0: img[:] = 0 else: img[:] = [b, g, r] cv2.destroyAllWindows()
效果图如下所示:
原文:https://www.cnblogs.com/leoych/p/12098167.html