Opencv 学习笔记:绘制动态随机直线(附实时展示)

在 OpenCV 中结合随机数与循环,可快速实现动态绘制随机直线的效果,适合入门图形绘制与实时交互场景。本文通过极简代码,演示在纯白画布上批量绘制随机直线,并实现实时展示与按键中断功能。

核心代码实现

python 复制代码
import cv2 as cv
import numpy as np
import random as ran

# 1. 创建400行×600列的3通道纯白画布
src = np.zeros((400, 600, 3), np.uint8)
src.fill(255)
cv.imshow("image", src)

# 2. 循环绘制1000条随机蓝色直线
for i in range(0, 1000):
    # 随机生成直线起点(A,C)、终点(B,D)坐标
    A = ran.randint(0, 600)  # 横坐标范围0-600(画布宽度)
    B = ran.randint(0, 600)
    C = ran.randint(0, 400)  # 纵坐标范围0-400(画布高度)
    D = ran.randint(0, 400)
    
    # 绘制蓝色直线(BGR格式:(255,0,0))
    cv.line(src, (A, C), (B, D), (255, 0, 0))
    
    # 按键中断:任意按键按下则停止绘制
    if cv.waitKey(50) > 0:
        break
    
    # 实时更新显示绘制结果
    cv.imshow('output', src)
    # 可选:打印随机横坐标,便于调试
    print(f"第{i+1}条直线起点横坐标:{A}")

# 释放窗口资源
cv.waitKey(0)
cv.destroyAllWindows()

关键知识点解析

  1. 空白画布创建
    • np.zeros((400, 600, 3), np.uint8) 创建纯黑画布,fill(255) 填充为白色;
    • 维度规则:(高度, 宽度, 通道数),与绘图坐标(横坐标, 纵坐标)对应。
  2. 随机坐标生成
    • ran.randint(最小值, 最大值) 生成整数随机数,横坐标范围匹配画布宽度(0-600),纵坐标匹配高度(0-400),避免坐标越界。
  3. 实时绘制与中断
    • cv.waitKey(50):每绘制一条直线暂停 50ms,实现动态展示效果(数值越小绘制越快);
    • waitKey返回值>0:检测到任意按键按下时终止循环,避免强制等待 1000 次循环结束。
  4. 颜色规则 :直线颜色(255, 0, 0)为 OpenCV 的 BGR 格式,对应蓝色;若需随机颜色,可改为(ran.randint(0,255), ran.randint(0,255), ran.randint(0,255))

实用调优技巧

  • 调整绘制速度:修改cv.waitKey(50)中的数值(如 10 = 更快,100 = 更慢);
  • 增加线宽:cv.line最后加参数2(如cv.line(..., 2)),让直线更清晰;
  • 限定直线范围:缩小随机数区间(如ran.randint(100, 500)),让直线集中在画布中间区域。
相关推荐
RainCity3 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
LinXunFeng10 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
兵慌码乱10 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
通信小呆呆15 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick15 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee15 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8615 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e15 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨15 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
闪闪发亮的小星星15 天前
高斯光以及高斯光公式解释
笔记