欢迎访问宙启技术站
智能推送

Python中绘制图像数组上的边界框及其它图像处理操作

发布时间:2023-12-15 19:11:06

在Python中,我们可以使用OpenCV库来处理图像。下面是一些常见的图像处理操作及其使用例子:

1. 导入需要的库:

import cv2
import numpy as np

2. 加载图像并显示:

image = cv2.imread('image.jpg')
cv2.imshow('Original Image', image)
cv2.waitKey(0)

3. 将图像转换为灰度图像:

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Scale Image', gray_image)
cv2.waitKey(0)

4. 二值化处理:

ret, binary_image = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY)
cv2.imshow('Binary Image', binary_image)
cv2.waitKey(0)

5. 边缘检测:

edges = cv2.Canny(gray_image, 50, 150)
cv2.imshow('Edge Detection', edges)
cv2.waitKey(0)

6. 绘制轮廓:

contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(image, contours, -1, (0, 255, 0), 3)
cv2.imshow('Contours', image)
cv2.waitKey(0)

7. 绘制边界框:

for contour in contours:
    x, y, w, h = cv2.boundingRect(contour)
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 3)
cv2.imshow('Bounding Boxes', image)
cv2.waitKey(0)

8. 图像平滑处理:

blur_image = cv2.GaussianBlur(image, (5, 5), 0)
cv2.imshow('Blur Image', blur_image)
cv2.waitKey(0)

9. 图像旋转:

rows, cols = image.shape[:2]
M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 45, 1)
rotated_image = cv2.warpAffine(image, M, (cols, rows))
cv2.imshow('Rotated Image', rotated_image)
cv2.waitKey(0)

10. 图像缩放:

resized_image = cv2.resize(image, (int(image.shape[1] / 2), int(image.shape[0] / 2)))
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)

这些操作可以帮助你在图像处理中实现一些常见的功能,如显示图像、灰度化、二值化、边缘检测、轮廓绘制、边界框绘制、图像平滑、图像旋转和缩放等。你可以根据具体需求进行调整和组合。