Skip to content
本页目录
给每一条河每一座山取一个温暖的名字,我有一所房子,面朝大海,春暖花开。

OpenCV

OpenCV(Open Source Computer Vision) is the world's biggest computer vision library.

OpenCV is open source, contains over 2500 algorithms, and is operated by the non-profit Open Source Vision Foundation. Since June 2000.

概览

  • PyTorch ≈ 大脑(思考、学习、决策的核心)
    它负责“理解”图像内容:这是猫?这是车?目标物体在哪?姿态是什么?深度是多少?它能从数据中学习复杂的模式、泛化到没见过的情况、做端到端的预测。这是智能的“认知”部分。

  • OpenCV ≈ 四肢 + 感官执行器(动手、感知、精细操作的工具箱)
    它负责:

    • “眼睛”:读摄像头、读视频、读图片文件
    • “手”:resize、crop、颜色转换、归一化、letterbox、去畸变、画框、标注、alpha融合、图像拼接、实时显示
    • “基本反射”:传统快速算法(边缘检测、轮廓、透视变换、二值化、连通域、模板匹配、颜色阈值跟踪等),这些不需要“思考”,速度极快,适合实时前/后处理
py
import cv2
import torch
import numpy as np

# OpenCV读图 + 预处理
img = cv2.imread("test.jpg")           # BGR
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)   # 转RGB
img_resized = cv2.resize(img, (640, 640))
img_tensor = torch.from_numpy(img_resized).permute(2,0,1).float() / 255.0
img_tensor = img_tensor.unsqueeze(0).cuda()   # [1,3,640,640]

# PyTorch模型推理
model = torch.load("yolov11n.pt")   # 或 ultralytics 的 YOLO类
pred = model(img_tensor)

# OpenCV把结果画回原图
for box in pred.boxes:
    x1,y1,x2,y2 = box.xyxy[0].cpu().int().tolist()
    cv2.rectangle(img, (x1,y1), (x2,y2), (0,255,0), 2)

cv2.imshow("result", img)
cv2.waitKey(0)
OpenCV has loaded