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 码

相关推荐
冬奇Lab8 小时前
每日一个开源项目(第140篇):AgentScope 2.0 - 阿里开源的生产级 Agent 框架
人工智能·开源·agent
冬奇Lab8 小时前
Skill 系列(04):Skill 指标体系——L1/L2/L3 三层监控,让质量下降有据可查
人工智能·开源·llm
IT_陈寒9 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
玩转AI不是事10 小时前
用IndexedDB做AI对话离线缓存实战
人工智能
学测绘的小杨11 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
Asize11 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
MobotStone11 小时前
AI项目越多,为什么越容易失控
人工智能·aigc
十有八七11 小时前
AI时代的置身X内
前端·人工智能
Lkstar11 小时前
A2A协议深度解析|Agent2Agent通信标准,智能体互联网的"HTTP"
人工智能·llm
百度Geek说11 小时前
当代码越来越便宜,什么在变贵?
人工智能