0
点赞
收藏
分享

微信扫一扫

python findContours 画出带框的

Python实现findContours画出带框的流程

概述

本文将教会你如何使用Python中的OpenCV库中的findContours函数来画出带框的图片。findContours函数可以用于图像边缘检测和轮廓提取,同时还可以用于目标检测和图像分割。

我们将按照以下步骤来实现这个功能:

  1. 读取图像
  2. 图像预处理
  3. 轮廓检测
  4. 绘制轮廓

接下来,我们将详细介绍每个步骤所需的代码和注释。

1. 读取图像

首先,我们需要使用OpenCV库中的imread函数来读取图像。下面是实现这一步骤的代码:

import cv2

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

2. 图像预处理

在进行轮廓检测之前,我们需要对图像进行一些预处理,以便更好地检测轮廓。常见的预处理步骤包括灰度化、二值化和高斯模糊等。下面是实现这一步骤的代码:

import cv2

# 灰度化
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 高斯模糊
blurred = cv2.GaussianBlur(binary, (5, 5), 0)

3. 轮廓检测

使用OpenCV库中的findContours函数进行轮廓检测。下面是实现这一步骤的代码:

import cv2

# 轮廓检测
contours, hierarchy = cv2.findContours(blurred, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

在这个代码中,我们使用了findContours函数来检测图像中的轮廓。blurred参数是我们预处理后的图像,cv2.RETR_TREE是轮廓检测模式,cv2.CHAIN_APPROX_SIMPLE是轮廓近似方法。

4. 绘制轮廓

最后,我们可以使用cv2.drawContours函数来绘制检测到的轮廓。下面是实现这一步骤的代码:

import cv2

# 绘制轮廓
cv2.drawContours(image, contours, -1, (0, 255, 0), 3)

在这个代码中,我们使用了drawContours函数来绘制轮廓。image参数是原始图像,contours参数是轮廓的列表,-1表示绘制所有的轮廓,(0, 255, 0)是绘制轮廓的颜色,3是绘制轮廓的线宽。

最后,我们可以使用cv2.imshow函数来显示绘制好的图像,并使用cv2.waitKey函数来等待用户按下任意键关闭图像窗口。

import cv2

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

总结

在本文中,我们学习了如何使用Python的OpenCV库中的findContours函数来画出带框的图片。我们按照以下步骤实现了这个功能:读取图像、图像预处理、轮廓检测、绘制轮廓。通过实际的代码和注释,希望能够帮助你理解并掌握这个功能。祝你成功!

举报

相关推荐

0 条评论