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 码

相关推荐
李昊哲小课3 分钟前
fastapi sse websocket 奶茶店实时订单看板
人工智能·python·websocket·网络协议·fastapi·sse
万邦科技Lafite8 分钟前
天猫商品评论API:评价内容中的用户情感倾向分析
人工智能·api·电商开放平台·淘宝开放平台·api开放接口
遇码11 分钟前
认识 LakeMind:一款本地优先的开源 AI 数据探索工作台
人工智能·开源
格林威20 分钟前
多相机微秒级对齐:硬件触发 vs PTP(IEEE 1588)方案实战对比
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉
三江番长 陀舍古帝1 小时前
AI 相关概念之(基础层级):AI、ANI、AGI、ASI
人工智能·agi
加速财经1 小时前
PocketBay探索AI应用部署新方式
人工智能
IT_陈寒1 小时前
Redis缓存击穿把我坑惨了,原来这样设过期时间才靠谱
前端·人工智能·后端
AKAMAI2 小时前
优化AI推理:针对AI工作负载的实时Node Balancers指标
人工智能·云计算
aiblog2 小时前
深度学习中“Transformer”怎么翻译为中文?
人工智能·深度学习·transformer
董员外2 小时前
RAG 系统进化论(八):Agentic RAG(智能体式 RAG),从回答问题到完成任务
人工智能·后端·设计模式