python用opencv将标注提取画框到对应的图像中

以下是详细讲解"Python用OpenCV将标注提取画框到对应的图像中"的完整攻略。

准备工作

在开始前,需要安装以下库:

  • opencv-python
  • matplotlib

安装方法:在命令行中输入 pip install 库名。比如pip install opencv-python安装opencv-python库。

步骤一:读取图像和标注文件

首先,我们需要从本地读取图像和对应的标注文件。我们假定图像和标注文件处于同一文件夹下,图像文件名是image.jpg,标注文件名是annotation.txt

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
img = cv2.imread('image.jpg')

# 读取标注文件
with open('annotation.txt') as f:
    annotation = f.read().splitlines()

步骤二:解析标注文件

标注文件中每一行都表示一个框的位置信息,包含以下四个值:

  • xmin: 左上角x坐标
  • ymin: 左上角y坐标
  • xmax: 右下角x坐标
  • ymax: 右下角y坐标

我们需要将这些值存储为一个数组,方便后面使用。

# 解析标注文件
boxes = []
for line in annotation:
    xmin, ymin, xmax, ymax = [int(x) for x in line.split()]
    box = [xmin, ymin, xmax, ymax]
    boxes.append(box)

步骤三:在图像中画框

我们已经将标注信息解析出来了,现在我们需要在图像中画出这些框。

# 在图像中画框
for box in boxes:
    xmin, ymin, xmax, ymax = box
    cv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)

最后一个参数(0, 255, 0)表示绿色,宽度为2。

步骤四:显示图像

现在我们已经在图像中画好了框,我们可以使用Matplotlib库来显示图像。

# 显示图像
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()

这将会用彩色显示图片。

示例一:

假设我们的annotation.txt里面的内容如下:

10 10 100 100
50 170 200 300

运行上述代码后,将会在图像中画出两个框,第一个框的左上角在(10, 10),右下角在(100, 100),第二个框的左上角在(50, 170),右下角在(200, 300)

示例二:

假设我们的annotation.txt里面的内容如下:

400 200 500 300

对应的图像文件image.jpg是一张白色背景,没有任何内容的图片。

运行上述代码后,将会在图像中画出一个框,左上角在(400, 200),右下角在(500, 300)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python用opencv将标注提取画框到对应的图像中 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • Go语言使用钉钉机器人推送消息的实现示例

    下面是详细的攻略: 概述 钉钉机器人是钉钉提供的一种消息推送服务,可以通过Webhook将消息推送到指定的钉钉群组或个人。Go语言提供了丰富的库,以方便访问HTTP服务,并实现钉钉机器人的推送功能,本文将介绍如何在Go语言中使用钉钉机器人推送消息。 步骤 1. 获取钉钉机器人的Webhook地址 在钉钉中新建一个机器人,并获取其Webhook地址,在后续代码…

    人工智能概览 2023年5月25日
    00
  • nginx 内置变量详解及隔离进行简单的拦截

    nginx 内置变量详解及隔离进行简单的拦截 什么是 nginx 内置变量 Nginx 内置变量是由 Nginx 定义的一组变量,用于获取与请求相关联的信息。这些变量可以用于配置 Nginx 的行为或传递给后端应用程序作为请求参数。 常见的内置变量 以下是一些常见的 nginx 内置变量: $request_method:请求方法(GET、POST等)。 $…

    人工智能概览 2023年5月25日
    00
  • Node.js连接mongodb实例代码

    下面我将为您详细讲解Node.js连接mongodb实例的完整攻略。 1. 安装MongoDB和Node.js 首先,我们需要安装MongoDB和Node.js。如果您已经安装了,可以跳过这一步。 安装MongoDB 您可以在MongoDB官网下载MongoDB的安装包,并按照官方文档进行安装。 安装Node.js 您可以在Node.js官网下载Node.j…

    人工智能概论 2023年5月25日
    00
  • pytorch 使用半精度模型部署的操作

    使用半精度模型可以显著地降低内存占用和计算时间,因此在部署深度学习模型时,使用半精度模型已经是一个不错的选择。在 PyTorch 中,使用半精度模型的相关操作可以参考以下攻略: 1. 确认半精度支持 在 PyTorch 中,半精度支持可以使用 torch.cuda 中的相关 API 进行判断和开启。可以使用以下代码进行确认: import torch # 判…

    人工智能概论 2023年5月25日
    00
  • Java接口幂等性设计原理解析

    Java接口幂等性设计原理解析 接口的幂等性在实际开发中非常重要,可以让开发者更好地处理请求重复问题,也能提高应用系统的可靠性。本文将详细讲解Java接口幂等性的设计原理及实践经验,帮助读者掌握如何设计符合幂等性原则的接口。 什么是接口幂等性 接口的幂等性是指,对同一个接口的多次请求所产生的影响与一次请求的影响相同,也就是说,多次重复提交请求,结果不变。 比…

    人工智能概览 2023年5月25日
    00
  • Django request.META.get()获取不到header头的原因分析

    当我们在使用Django框架开发Web应用时,常常需要获取这个请求的Header头信息,比如User-Agent、Authorization等。而在Django中,可以用request.META.get()方法获取Header头。但是,很多人会遇到获取不到Header头信息的情况,这是为什么呢? 本文将分以下几点详细分析原因,并提供示例说明,帮助读者理解: …

    人工智能概览 2023年5月25日
    00
  • Mac下安装配置mongodb并创建用户的方法

    下面是详细讲解“Mac下安装配置mongodb并创建用户的方法”的完整攻略。 准备工作 在安装mongodb之前,需要先安装Homebrew和Xcode Command Line Tools(如果没有的话)。安装方式如下: 安装Homebrew: 打开终端,输入以下命令: /bin/bash -c "$(curl -fsSL https://raw…

    人工智能概览 2023年5月25日
    00
  • Keras自动下载的数据集/模型存放位置介绍

    Keras提供了许多常用数据集,例如MNIST、CIFAR-10等,以及训练好的模型,如VGG16、ResNet50等。在使用这些数据集和模型时,我们需要知道它们所存放的位置。 数据集存放位置 Keras数据集默认存放在用户目录下的”.keras/datasets”文件夹中。当我们第一次调用某个数据集时,Keras会自动下载并解压至该文件夹中。例如我们调用M…

    人工智能概论 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部