OpenCV图像轮廓的使用

文章目录

  • 前言
  • 一、图像轮廓是什么?
  • 二、使用步骤
    • 1.导包及导入图片
    • 2.转化为灰度图再转化为二值图
    • 3.查找轮廓
  • 三、轮廓的长度与面积计算
  • 总结


前言

© Fu Xianjun. All Rights Reserved.

随着人工智能的不断发展,OpenCV这门技术也越来越重要,很多人都开启了学习图像轮廓处理,本文就介绍了图像轮廓处理的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、图像轮廓是什么?

图像轮廓是图像中非常重要的特征信息,通过图像轮廓的操作我们可以获取目标图像的大小、位置、方位等信息。

许多人会把图像的轮廓与边缘当作同一事物其实不然。边缘是不连续的而图像轮廓是指将边缘连接起来形成一个整体

下面是示意图

轮廓
OpenCV图像轮廓的使用_第1张图片
边缘
OpenCV图像轮廓的使用_第2张图片

查找轮廓
mode:
cv2.RETR_EXTERNAL 只检测外轮廓
cv2.RETR_LIST检测的轮廓不建立等级关系
cv2.RETR_CCOMP建立两个等级的轮廓
cv2.RETR_TREE建立一个等级树结构的轮廓
method:
cv2.CHAIN_APPROX_NONE存储所有的轮廓点
cv2.CHAIN_APPROX_SIMPLE压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息。

二、使用步骤

1.导包及导入图片

代码如下(示例):

import cv2
import numpy as np

img =cv2.imread("shape.jpg")  #imread(图片名.格式)

2.转化为灰度图再转化为二值图

代码如下(示例):

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

ret,binary =cv2.threshold(gray,200,255,0)

3.查找轮廓

image, contours, hierarchy=cv2.findContours( image ,mode, method)

image: 与函数参数中原始图像image一致。
contours: 返回的轮廓
hierarchy:图像的拓扑信息(轮廓层次)
image :原始图像
mode:轮廓检索模式
method: 轮廓的近似方法


代码如下(示例):

img = cv2.drawContours(img,contours,1,(0,255,0),5)  
                           #绘制轮廓,1表示第几个轮廓
cv2.imshow("shape",img)    #显示图像
cv2.waitKey(0)             #结束语句
cv2.destroyAllWindows()    

三、轮廓的长度与面积计算

轮廓面积计算
在这里插入图片描述
轮廓长度计算
在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了图像轮廓的使用,而图像轮廓可以帮助我们快速便捷地处理图像。

你可能感兴趣的:(python,opencv,人工智能)