栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Opencv的学习之图像轮廓

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Opencv的学习之图像轮廓

边缘检测和图像轮廓的区别:边缘是零散的点,轮廓是个整体

cv2.findContours(img,mode,method)

mode:轮廓检索模式

RETR_EXTERNAL:只搜索最外面的轮廓

RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中

RETE_CCOMP:检索所有的轮廓,并将他们组织为两层;顶层是部分的外部边界,第二层是空洞的边界.

RETR_TREE(最常用的):检索所有的轮廓,并重构嵌套轮廓的整个层次;

method:轮廓逼近方法:

CHAIN_APPROX_NONE:以Freeman链码的方式输出轮廓,所有其他方法输出多边形(顶点的序列)

CHAIN_APPROX_SIMPL:压缩水平的,垂直的和斜的部分,也就是,函数只保留他们的终点部分

代码展示:

import cv2
import numpy as np
import matplotlib.pyplot as plt


img = cv2.imread(r'C:UsersmasterDesktopcar.png')
#读取图像灰度图
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#图像二值化
ret, threshold = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
#图像轮廓检测
contours, hierarchy = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
#绘制轮廓
#传入绘制图,轮廓,轮廓索引,颜色模式,线条厚度
#注意需要copy,要不原图会变
draw_img = img.copy()
res = cv2.drawContours(draw_img, contours, -1, (0, 255,0 ), 1)
cv2.imshow('res',res)

 效果展示:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号