opencv-python学习笔记(一):画线、打开摄像头

前提:

uv

安装依赖:

pyproject.toml:

bash 复制代码
[project]
name = "opencv_learn"
version = "0.1.0"
description = "opencv learn"
readme = "README.md"
requires-python = ">=3.13, < 3.14"
dependencies = [
    "opencv-python>=4.12.0.88",
]
bash 复制代码
uv sync

画线代码:

01_opencv_draw_line.py:

python 复制代码
import cv2
import numpy as np


img = np.zeros((512, 512, 3), np.uint8)


for i in range(512):
    img[:, i] = (0, 0, 0)

# 画线
center_y = 512 // 2
start_pos = (0, center_y)
end_pos = (512, center_y)

cv2.line(img, start_pos, end_pos, (0, 255, 0), 5)

cv2.imshow("image", img)
cv2.waitKey(0)

cv2.destroyAllWindows()

打开摄像头代码:

02_opencv_camera.py:

python 复制代码
import cv2

capture = cv2.VideoCapture(0)

if not capture.isOpened():
    print("Error: Camera not found")
    exit()

while True:
    ret, frame = capture.read()
    if not ret:
        print("Error: Failed to capture frame")
        break

    # 这里的frame.shape假定 : (480, 640, 3)
    origin_with = frame.shape[1]  # row, 即高度
    origin_height = frame.shape[0]  # col, 即宽度

    frame = cv2.resize(frame, (origin_with // 2, origin_height // 2))

    cv2.imshow("Camera", frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break


capture.release()
cv2.destroyAllWindows()

这里解释一下:

cv2.waitKey(1) 是 OpenCV 中用于等待键盘输入的函数,括号中的数字表示等待的毫秒数。

如果有按键,返回按键的 ASCII 码

相关推荐
悟乙己2 小时前
LLM+数据可视化的终点?蚂蚁AntV 的AI新玩法:Text2Graph
人工智能·信息可视化·llm·数据可视化
Sopaco2 小时前
从会话历史到智能记忆:Cortex Memory如何重新定义AI记忆系统
人工智能
沫儿笙2 小时前
库卡机器人钢结构焊接WGFACS节气装置
人工智能·机器人
狂放不羁霸2 小时前
VSCode | 设置保存时自动格式化 Python 文件
ide·vscode·python
唐叔在学习2 小时前
buildozer打包详解:细说那些我踩过的坑
android·后端·python
J_Xiong01172 小时前
【VLMs篇】12:Cambrian-S:迈向视频中的空间超感知
人工智能·机器人
轻竹办公PPT2 小时前
2026 年工作计划 PPT 制作,对比几种 AI 生成思路
人工智能·python·powerpoint
ss2732 小时前
Java定时任务:ScheduledThreadPoolExecutor
开发语言·python
RestCloud2 小时前
谷云科技发布 API × AI 战略:让 AI 从“理解数据”走向“驱动业务能力”
人工智能·科技·api·数据集成·ipaas·aiagent·ai网关