Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0623
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 可以在空白黑底图像上写字
- 字体
- 颜色
- 朝向
- 大小
- ...都可以修改
- 可以试试使用滚动条吗?
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()
- 结果
- 这次我们研究了滚动条
- 可以控制画面不同的
- 文本内容
- 文本位置
- 具体颜色
- 还可以有什么样具体的应用吗?🤔
- 我们下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。



