OpenCv之图像轮廓

目录

一、图像轮廓定义

二、绘制轮廓

三、计算轮廓面积与周长


一、图像轮廓定义

图像轮廓是具有相同颜色或灰度的连续带你的曲线.轮廓在形状分析和物体的检测和识别中很有用

轮廓的作用:

  • 用于图形分析
  • 物体的识别与检测

注意点:

  • 为了检测的准确性,需要先对图像进行二值化或Canny操作
  • 画轮廓是会修改输入的图像,如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。

案例代码如下:

python 复制代码
import cv2
import numpy as np

# 该图像显示效果是黑白的,但是实际上确实三个通道的彩色图像
img = cv2.imread('6.jpg')

# 变成单通道的黑白图片
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 二值化,注意有两个返回值,阈值和结果
ret,binary = cv2.threshold(gray,150,255,cv2.THRESH_BINARY)

# 轮廓查找,新版本返回两个结果,轮廓和层级,老版本返回三个 参数,图像,轮廓和层级
result,contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

# 打印轮廓
print(contours)

# 释放资源
cv2.waitKey(0)
cv2.destroyAllWindows()

二、绘制轮廓

参照函数:

代码案例如下:

python 复制代码
import cv2
import numpy as np

# 该图像显示效果是黑白的,但是实际上确实三个通道的彩色图像
img = cv2.imread('6.jpg')

# 变成单通道的黑白图片
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 二值化,注意有两个返回值,阈值和结果
ret,binary = cv2.threshold(gray,150,255,cv2.THRESH_BINARY)

# 轮廓查找,新版本返回两个结果,轮廓和层级,老版本返回三个 参数,图像,轮廓和层级
result,contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

# 打印轮廓
# print(contours)

# 绘制轮廓会直接修改原图
# 如果想保持原图不变,建议copy一份
img_copy = img.copy()
cv2.drawContours(img_copy,contours,-1,(0,0,255),2)

# 释放资源
cv2.waitKey(0)
cv2.destroyAllWindows()

三、计算轮廓面积与周长

轮廓面积是指每个轮廓中所有的像素点围成区域的面积,单位为像素

案例代码如下:

python 复制代码
import cv2
import numpy as np

# 该图像显示效果是黑白的,但是实际上确实三个通道的彩色图像
img = cv2.imread('6.jpg')

# 变成单通道的黑白图片
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 二值化,注意有两个返回值,阈值和结果
ret,binary = cv2.threshold(gray,150,255,cv2.THRESH_BINARY)

# 轮廓查找,新版本返回两个结果,轮廓和层级,老版本返回三个 参数,图像,轮廓和层级
result,contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

# 绘制轮廓会直接修改原图
# 如果想保持原图不变,建议copy一份
img_copy = img.copy()
cv2.drawContours(img_copy,contours,1,(0,0,255),2)

# 计算轮廓面积
area = cv2.contourArea(contours[1])

# 计算轮廓周长
perimeter = cv2.arcLength(contours[1],closed=True)

# 释放资源
cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
WLJT12312312312 分钟前
AI懂你,家更暖:重塑生活温度的智能家电新范式
人工智能·生活
roman_日积跬步-终至千里29 分钟前
【计算机视觉(16)】语义理解-训练神经网络1_激活_预处理_初始化_BN
人工智能·神经网络·计算机视觉
AI营销实验室30 分钟前
原圈科技AI CRM系统引领2025文旅行业智能升级新趋势
人工智能·科技
AI营销前沿32 分钟前
私域AI首倡者韩剑,原圈科技领航AI营销
大数据·人工智能
咚咚王者32 分钟前
人工智能之数学基础 概率论与统计:第一章 基础概念
人工智能·概率论
_Li.32 分钟前
机器学习-集成学习
人工智能·机器学习·集成学习
Percent_bigdata39 分钟前
数据治理平台选型解析:AI大模型与智能体如何重塑企业数字基座
大数据·人工智能
牛客企业服务41 分钟前
AI面试监考:破解在线面试作弊难题
人工智能·面试·职场和发展
面包会有的,牛奶也会有的。1 小时前
AI 测试平台:WHartTest V1.3.0 更新优化架构
人工智能
2501_941982051 小时前
结合 AI 视觉:使用 OCR 识别企业微信聊天记录中的图片信息
人工智能·ocr·企业微信