博客
关于我
OpenCV 4.1.0版drawContours
阅读量:792 次
发布时间:2023-02-23

本文共 1805 字,大约阅读时间需要 6 分钟。

OpenCV 是一个强大的图像处理库,其 cv2.drawContours 方法可以用来绘制图像轮廓。本文将介绍如何使用 OpenCV 进行轮廓绘制,包括基本步骤和代码示例。

基本步骤

  • 导入 OpenCV

    首先需要安装 OpenCV 库并导入它。

    import cv2
  • 读取图片

    使用 cv2.imread 读取图片文件。

    img = cv2.imread('input.jpg')
  • 获取轮廓

    使用 cv2.findContours 方法获取图片中的轮廓。

    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  contours, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  • 绘制轮廓

    使用 cv2.drawContours 方法在图片上绘制轮廓。

    cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
  • 显示或保存结果

    最后可以选择在屏幕上显示图片或将其保存为新文件。

    cv2.imshow('Contours', img)  cv2.waitKey(0)  cv2.destroyAllWindows()

    或者保存为新文件:

    cv2.imwrite('output.jpg', img)
  • 代码示例

    以下是一个完整的绘制轮廓的函数示例:

    import cv2def draw_contours(image_path):    img = cv2.imread(image_path)    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    contours, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)    cv2.drawContours(img, contours, -1, (0, 255, 0), 3)    cv2.imshow('Contours', img)    cv2.waitKey(0)    cv2.destroyAllWindows()

    测试用例

    假设你有一个名为 test_image.jpg 的图片,包含多个形状的轮廓。运行上述代码后,你将在屏幕上看到原始图片和带有轮廓的修改后的图片。

    人工智能与 OpenCV 结合应用

    • 物体检测

      OpenCV 提供了 cv2.findContourscv2.approxPolyDP 等工具,可结合机器学习算法(如 SVM 或神经网络)进行物体检测。例如,可以训练分类器识别特定形状(如圆形、矩形等)。

    • 图像分割

      在图像分割中,OpenCV 提供了多种方法,包括基于轮廓的分割。通过找到连通区域并使用 cv2.approxPolyDP 逼近轮廓,可以将图片分割为多个具有特定形状的区域。

    例如,以下是一个简单的图像分割示例:

    import cv2def split_image(image_path):    img = cv2.imread(image_path)    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)    contours, _ = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)    for contour in contours:        epsilon = 0.01 * cv2.arcLength(contour, True)        approx = cv2.approxPolyDP(contour, epsilon, True)        if len(approx) == 4:            x, y, w, h = cv2.boundingRect(approx)            roi = img[y:y+h, x:x+w]            cv2.imshow('ROI', roi)            cv2.waitKey(0)

    这个示例处理了近似轮廓长度为4(可能为矩形)的区域。

    转载地址:http://qosfk.baihongyu.com/

    你可能感兴趣的文章
    Ofelia:在Pd中融合openFrameworks与Lua的创意编程利器
    查看>>
    Office 2024 专业增强版安装教程(附安装包),高效办公由此开启
    查看>>
    Office 365身份认证管理-安装并配置活动目录同步
    查看>>
    Office online server 部署
    查看>>
    office 中墨迹书写工具_自动生成英文书法稿纸的几个网址,及Briem 的cursive italic书写教程...
    查看>>
    Office2010每次启动都要配置的解决办法
    查看>>
    Office2016 打开excel出现丢失appvisvsubsystems32.dll
    查看>>
    Office365 PowerShell打开邮箱审计功能
    查看>>
    OfficeWeb365 Indexs 任意文件读取漏洞复现
    查看>>
    OfficeWeb365 Readfile 任意文件读取漏洞复现
    查看>>
    OfficeWeb365 SaveDraw 文件上传漏洞复现
    查看>>
    office中的所有content type
    查看>>
    office之Excel 你会用 Ctrl + E 吗?
    查看>>
    Office办公软件里的“开发工具”选项卡-ChatGPT4o作答
    查看>>
    Office开发工具选项卡中的控件-ChatGPT4o作答
    查看>>
    Offline Installation the .NET Framework 3.5 on Windows 8
    查看>>
    OGC服务标准(地图资料篇.3)
    查看>>
    OGG初始化之使用数据库实用程序加载数据
    查看>>
    ogg参数解析
    查看>>
    ognl详解
    查看>>