cv2.createTrackbar
时间: 2023-07-24 15:58:09 浏览: 135
cv2.createTrackbar是OpenCV中用于创建轨迹条的函数。它接收三个参数:trackbar名称、窗口名称和默认值。可以通过调用cv2.getTrackbarPos()来获取当前轨迹条的值。例如:
```
import cv2
def on_change(x):
print(x)
cv2.namedWindow("window")
cv2.createTrackbar("trackbar", "window", 0, 10, on_change)
while True:
if cv2.waitKey(1) == ord("q"):
break
```
上述代码在窗口"window"中创建一个名为"trackbar"的轨迹条,取值范围为0~10。当轨迹条的值发生变化时,会调用on_change()函数。
相关问题
import cv2 import numpy as np def CannyThreshold(lowThreshold): detected_edges = cv2.GaussianBlur(gray,(3,3),0) detected_edges = cv2.Canny(detected_edges,lowThreshold,lowThreshold*ratio,apertureSize = kernel_size) dst = cv2.bitwise_and(img,img,mask = detected_edges) # just add some colours to edges from original image. cv2.imshow('canny demo',dst) lowThreshold = 0 max_lowThreshold = 300 #最大阈值 ratio = 3 kernel_size = 3 #img = cv2.imread('AAA.jpg', cv2.IMREAD_GRAYSCALE) #注释此行图片不灰度化 img = cv2.imread("D:\xiao.jpg") #注释此行上行代码不注释图片灰度化 gray = cv2.imread("D:\xiao.jpg", cv2.IMREAD_GRAYSCALE) cv2.namedWindow('canny demo') cv2.createTrackbar('Min threshold','canny demo',lowThreshold, max_lowThreshold, CannyThreshold) CannyThreshold(0) # initialization if cv2.waitKey(0) == 27: cv2.destroyAllWindows()
这段代码是使用OpenCV库进行Canny边缘检测的操作,并且使用了滑动条来调节最小阈值。其中,首先对输入的图像进行了高斯模糊处理,然后使用Canny函数进行边缘检测,最后使用bitwise_and函数将原图像和检测出的边缘进行合并并显示出来。滑动条的回调函数是CannyThreshold,用于实时更新最小阈值并重新进行边缘检测和显示。如果按下ESC键,则关闭窗口。
import cv2 import numpy as np def nothing(x): # 回调函数 pass img = np.zeros((300, 512, 3), np.uint8) cv2.namedWindow('image') cv2.createTrackbar('R', 'image', 0, 255, nothing) cv2.createTrackbar('G', 'image', 0, 255, nothing) cv2.createTrackbar('B', 'image', 0, 255, nothing) switch = '0:OFF\n1:ON' cv2.createTrackbar(switch, 'image', 0, 1, nothing) while (1): cv2.imshow('image', img) k = cv2.waitKey(1) if k == ord('q'): break 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()
这段代码是一个使用OpenCV库在窗口中创建一个可调节RGB颜色的图像。通过创建三个滑动条来调节红、绿、蓝三个通道的值,并且可以通过一个开关来控制图像的显示与隐藏。
其中,`cv2.createTrackbar()`函数用于创建滑动条,第一个参数是滑动条的名称,第二个参数是它所属的窗口名称,第三个参数是滑动条的初始值,第四个参数是滑动条的最大值,第五个参数是回调函数。回调函数`nothing()`可以为空,它只是一个占位符。
程序的主循环`while(1)`中,通过`cv2.getTrackbarPos()`函数来获取滑动条的当前值,并根据这些值来更新图像。如果开关的值为0,图像将被清空为黑色;否则,图像将被更新为对应的颜色。
按下键盘上的'q'键将退出程序,最后通过`cv2.destroyAllWindows()`函数来关闭窗口。
这段代码可以用来演示和测试OpenCV中滑动条的使用。
阅读全文