show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 可以在空白黑底图像上写字
- 字体
- 颜色
- 朝向
- 大小
- ...都可以修改
- 可以试试使用滚动条吗?
import cv2
import numpy as np
def callback(value):
print(value)
cv2.namedWindow('canvas', cv2.WINDOW_NORMAL)
cv2.resizeWindow('canvas', 640, 480)
cv2.createTrackbar('T', 'canvas', 0, 100, callback)
while True:
t = cv2.getTrackbarPos('T', 'canvas')
canvas = np.zeros((480,640,3), np.uint8)
cv2.putText(canvas,str(t),(30,80),cv2.FONT_HERSHEY_TRIPLEX,2,(0,255,0),5)
cv2.imshow('canvas', canvas)
key = cv2.waitKey(1)
if key & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
- 运行结果
- 滚动条数值在画布上显示
- 在回调函数中 向终端输出数字
- 可以去除死循环吗?
import cv2
import numpy as np
def callback(value):
print(value)
t = cv2.getTrackbarPos('T', 'canvas')
canvas= np.zeros((640,480,3), np.uint8)
cv2.putText(canvas,str(t),(30,80),cv2.FONT_HERSHEY_TRIPLEX,2,(0,255,0),5)
cv2.imshow('canvas', canvas)
cv2.namedWindow('canvas', cv2.WINDOW_NORMAL)
canvas = np.zeros((640,480,3),np.uint8)
cv2.imshow('canvas', canvas)
cv2.createTrackbar('T', 'canvas', 0, 100, callback)
key = cv2.waitKey(0)
cv2.destroyAllWindows()
- 效果
- 除了 控制 终端输出的 文本外
- 可以 控制文本的 输出位置吗?
import cv2
import numpy as np
def callback(value):
print(value)
t = cv2.getTrackbarPos('T', 'canvas')
canvas = np.zeros((640,480,3), np.uint8)
x = t*4 + 80
cv2.putText(canvas,str(t),(x,80),cv2.FONT_HERSHEY_TRIPLEX,2,(0,255,0),5)
cv2.imshow('canvas', canvas)
cv2.namedWindow('canvas', cv2.WINDOW_NORMAL)
canvas = np.zeros((640,480,3), np.uint8)
cv2.imshow('canvas', canvas)
cv2.createTrackbar('T', 'canvas', 0, 100, callback)
key = cv2.waitKey(0)
cv2.destroyAllWindows()
- 最终结果
- 确实可以控制
- 文本位置
- 可以控制颜色吗?
- 事件触发
- 事件发生的时候 才调用
import cv2
import numpy as np
cv2.namedWindow('trackbar', cv2.WINDOW_NORMAL)
cv2.resizeWindow('trackbar', 640, 480)
def callback(value):
r = cv2.getTrackbarPos('R', 'trackbar')
g = cv2.getTrackbarPos('G', 'trackbar')
b = cv2.getTrackbarPos('B', 'trackbar')
img[:] = [b, g, r]
cv2.imshow('trackbar', img)
print(value)
cv2.createTrackbar('R', 'trackbar', 0, 255, callback)
cv2.createTrackbar('G', 'trackbar', 0, 255, callback)
cv2.createTrackbar('B', 'trackbar', 0, 255, callback)
img = np.zeros((480,640,3), np.uint8)
cv2.imshow('trackbar', img)
if cv2.waitKey(0) == ord('q'):
cv2.destroyAllWindows()
- 结果
- 这次我们研究了滚动条
- 可以控制画面不同的
- 文本内容
- 文本位置
- 具体颜色
- 还可以有什么样具体的应用吗?🤔
- 我们下次再说 👋