【OpenCV基础知识点总结】

OpenCV(开源计算机视觉库)是一个广泛应用于图像和视频处理的Python库。以下是一些主要的图像处理知识点汇总和相应的代码示例说明:

1. 图像读取与显示

  • 读取图像 :使用cv2.imread()函数从文件中加载图像。

    python 复制代码
    import cv2
    
    # 读取图像
    img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)  # IMREAD_COLOR表示以BGR格式读取,还有IMREAD_GRAYSCALE等选项
    
    if img is not None:  # 检查是否成功读取图像
        # 显示图像
        cv2.imshow('Image', img)
        cv2.waitKey(0)  # 等待用户按键关闭窗口
        cv2.destroyAllWindows()  # 关闭所有窗口

2. 图像写入

  • 保存图像 :使用cv2.imwrite()函数将图像矩阵保存到磁盘。

    python 复制代码
    cv2.imwrite('output.jpg', img)  # 将img矩阵内容保存为'output.jpg'

3. 图像基本操作

  • 裁剪图像 :通过numpy切片操作或cv2.resize()函数裁剪图像的一部分。

    python 复制代码
    cropped_img = img[50:200, 100:300]  # 切片裁剪
  • 调整图像大小:

    python 复制代码
    resized_img = cv2.resize(img, (new_width, new_height), interpolation=cv2.INTER_LINEAR)

4. 颜色空间转换

  • 灰度图像转换:

    python 复制代码
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  • RGB转BGR 或其他颜色空间转换。

5. 图像滤波器

  • 均值滤波:减少图像噪声。

    python 复制代码
    blurred_img = cv2.blur(img, (5, 5))  # 使用5x5大小的核进行模糊
  • 高斯滤波:

    python 复制代码
    gaussian_blurred_img = cv2.GaussianBlur(img, (5, 5), 0)

6. 边缘检测

  • Canny边缘检测:

    python 复制代码
    edges = cv2.Canny(img, threshold1, threshold2)

7. 形态学操作

  • 膨胀与腐蚀:

    python 复制代码
    kernel = np.ones((3, 3), np.uint8)
    dilated_img = cv2.dilate(img, kernel, iterations=1)
    eroded_img = cv2.erode(img, kernel, iterations=1)

8. 直方图均衡化

  • 改善图像对比度:

    python 复制代码
    equalized_img = cv2.equalizeHist(gray_img)

9. 对象检测

  • 霍夫直线检测:

    python 复制代码
    lines = cv2.HoughLines(img, rho, theta, threshold)
  • 轮廓查找:

    python 复制代码
    contours, hierarchy = cv2.findContours(thresh_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

10. 视频处理

  • 打开摄像头并读取视频流:

    python 复制代码
    cap = cv2.VideoCapture(0)  # 打开默认摄像头
    while True:
        ret, frame = cap.read()
        if ret:
            # 对frame进行处理...
            cv2.imshow('Video', frame)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break
    cap.release()
    cv2.destroyAllWindows()
相关推荐
七牛开发者41 分钟前
从 GLM 到 GPT,HarnessPro 如何用 RSI 降低 Agent 成本
人工智能·gpt·agent·harness·rsi
何以解忧唯有撸码42 分钟前
c# + YOLODotNet+OpenCVSharp 实现物品轨迹追踪
计算机视觉·c#·winform·yolov8·opencvsharp
跨境卫士-小汪1 小时前
TikTokShop欧洲商品接口架构调整跨境技术团队需要做好哪些准备
大数据·人工智能·新媒体运营·跨境电商·跨境·营销策略
康小汪2 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
收放扳机3 小时前
多机连线(In-Line)场景下,收放板机“缓存工位”的容量与架构选型参考
人工智能·科技·自动化·制造·pcb工艺
武天旭3 小时前
AI安全--AI大模型的后门攻击检测与防御
人工智能·深度学习·安全·机器学习
智能运维指南3 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
人工智能AI技术3 小时前
DeepInfer开源炸场!别再妄想个人电脑跑满血DeepSeek
人工智能
深蓝电商API3 小时前
用AI生成拟人行为:让鼠标轨迹更“有人味”
人工智能·爬虫
znnnk3 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle