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 码

相关推荐
、如果几秒前
ima Skills 自进化实战:三层结构、反馈与版本验证
android·人工智能·ai编程
qq_25294131683 分钟前
低空飞行物目标检测数据集 | 低空飞行物 鸟类检测 反无人机 航空安全 目标检测 YOLO格式9017期
人工智能·yolo·目标检测·计算机视觉·无人机·低空飞行物
大厂码农老A5 分钟前
汤森路透的座上宾?Qwen3.5-397B-A17B到底有什么本事?
前端·人工智能·后端
我命由我123455 分钟前
人脸识别 - 判断人脸是否在画面中央
java·人工智能·python·java-ee·人脸识别·android jetpack·android runtime
程序猿乐锅6 分钟前
从 dsh 源码看「一切皆插件」与 Spring IoC
java·网络·数据库·人工智能·后端·spring
这就是佬们吗7 分钟前
AI Agent 的四根支柱:LLM、工具、记忆与规划是如何协同的
大数据·数据库·人工智能
Black_Rock_br7 分钟前
本地AI工具更新,#DSH Desktop桌面端# 正式发布迭代
人工智能·python·开源·运维开发·开源软件
gfdr58 分钟前
把吃灰的电视盒子,改成一台不花月租的监控
python·嵌入式硬件·电视盒子
Henry-SAP9 分钟前
小米自研AI芯片亮相
人工智能·云原生·sap·erp
林澈在路上11 分钟前
AI做歌用哪个最好 2026国产AI音乐工具评测
大数据·人工智能·aigc·音视频·音频