📜  图像上的 python 边界框 - Python (1)

📅  最后修改于: 2023-12-03 15:07:35.405000             🧑  作者: Mango

图像上的 Python 边界框

在计算机视觉的任务中,边界框(bounding box)是一种常用的表示目标位置和大小的方式。Python 中有许多图像处理和计算机视觉库可以用来在图像中绘制边界框。

OpenCV

OpenCV 是一款流行的开源计算机视觉库,可以用来处理图像和视频。

安装

在 Linux 上使用以下命令安装:

pip install opencv-python

在 Windows 上使用以下命令安装:

pip install opencv-python-headless
绘制边界框

使用 OpenCV 绘制边界框的步骤如下:

  1. 导入 OpenCV 库并读取图像
  2. 指定边界框的位置和大小
  3. 在图像上绘制边界框
  4. 显示图像
import cv2

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

# 指定边界框位置和大小
x,y,w,h = 100,100,200,200

# 在图像上绘制边界框
cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
示例

原始图像:

原始图像

绘制边界框后的图像:

绘制边界框后的图像

PIL

Pillow 是一个常用的 Python 图像处理库,它可以用来读取、处理和保存常见的图像格式。

安装

在 Linux 上使用以下命令安装:

pip install pillow

在 Windows 上使用以下命令安装:

pip install pillow
绘制边界框

使用 PIL 绘制边界框的步骤如下:

  1. 导入 PIL 库并打开图像
  2. 创建 ImageDraw 对象并指定要绘制的边界框
  3. 在 ImageDraw 对象上绘制边界框
  4. 保存图像
from PIL import Image, ImageDraw

# 打开图像
img = Image.open('image.jpg')

# 创建 ImageDraw 对象并指定要绘制的边界框
draw = ImageDraw.Draw(img)
x,y,w,h = 100,100,200,200
box = (x, y, x+w, y+h)

# 在 ImageDraw 对象上绘制边界框
draw.rectangle(box, outline='green')

# 保存图像
img.save('output.png')
示例

原始图像:

原始图像

绘制边界框后的图像:

绘制边界框后的图像

scikit-image

scikit-image 是一个 Python 的图像处理库,它基于 NumPy 数组实现了大量的图像处理算法。

安装

在 Linux 上使用以下命令安装:

pip install scikit-image

在 Windows 上使用以下命令安装:

pip install scikit-image
绘制边界框

使用 scikit-image 绘制边界框的步骤如下:

  1. 导入 scikit-image 库并读取图像
  2. 指定边界框的位置和大小
  3. 在图像上绘制边界框
  4. 显示图像
from skimage import io, draw

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

# 指定边界框位置和大小
x,y,w,h = 100,100,200,200

# 在图像上绘制边界框
rect = draw.rectangle((x,y), (x+w,y+h), shape=img.shape)
img[rect] = (0,255,0)

# 显示图像
io.imshow(img)
io.show()
示例

原始图像:

原始图像

绘制边界框后的图像:

绘制边界框后的图像