织梦做的网站首页出现空白常用网站后台地址
织梦做的网站首页出现空白,常用网站后台地址,最近国际时事,够完美网站建设Python 小白的课题报告—OpenCV 抠图项目实战#xff08;8#xff09; 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是#xff0c;本系列并不能算是 OpenCV 的抠图项目教程#xff0c;只是以此为主题的课题报告。其中包括了一个较为完整的…Python 小白的课题报告—OpenCV 抠图项目实战8 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是本系列并不能算是 OpenCV 的抠图项目教程只是以此为主题的课题报告。其中包括了一个较为完整的 PyQt 项目。 欢迎关注『Python 小白的项目实战 youcans』 原创作品 Python 小白的课题报告—OpenCV 抠图项目实战1目录摘要 Python 小白的课题报告—OpenCV 抠图项目实战2抠图绪论 Python 小白的课题报告—OpenCV 抠图项目实战3抠图综述 Python 小白的课题报告—OpenCV 抠图项目实战4固定阈值抠图 Python 小白的课题报告—OpenCV 抠图项目实战5自适应阈值抠图 Python 小白的课题报告—OpenCV 抠图项目实战6色彩范围抠图 Python 小白的课题报告—OpenCV 抠图项目实战7边缘检测 Python 小白的课题报告—OpenCV 抠图项目实战8图像轮廓 Python 小白的课题报告—OpenCV 抠图项目实战9评价指标 Python 小白的课题报告—OpenCV 抠图项目实战10PyQt5 使用 Python 小白的课题报告—OpenCV 抠图项目实战11算法实验平台 Python 小白的课题报告—OpenCV 抠图项目实战12源程序代码 第四章 图像分割
4.2 提取轮廓特征
轮廓特征是图像中的重要特征。在进行视觉检测的时候常常利用轮廓特征来达到我们要检测的目的。 轮廓即是以某种方式表示图像中的曲线的点的列表。 轮廓与边缘很相似。但轮廓是连续的边缘不一定都连续。可以说边缘包括轮廓。边缘主要是作为图像的特征使用比如用边缘特征可以区分脸和手而轮廓主要用来分析物体的形态比如物体的周长和面积等。轮廓常用于形状分析和物体的检测和识别。 寻找轮廓的操作一般用于二值化图所以通常会使用阈值分割或 Canny 边缘检测先得到二值图。
OpenCV 中提供了函数cv.findContours()寻找轮廓函数cv.drawContours() 绘制轮廓。在 OpenCV 中查找轮廓就像在黑色背景中找白色物体。
函数说明 ··· cv.findContours(image, mode, method[, contours[, hierarchy[, offset]]] ) → contours, hierarchy ··· 参数说明
image原始图像8 位单通道二值图像mode 轮廓检索模式 cv.RETR_EXTERNAL只检索最外层轮廓cv.RETR_LIST检索所有轮廓不建立任何层次关系cv.RETR_CCOMP检索所有轮廓并将其组织为两级层次结构cv.RETR_TREE检索所有轮廓并重建嵌套轮廓的完整层次结构cv.RETR_FLOODFILL漫水填充法泛洪填充 method 轮廓近似方法 cv.CHAIN_APPROX_NONE存储每个轮廓的所有像素点cv.CHAIN_APPROX_SIMPLE压缩水平、垂直和对角线段仅保留其端点cv.CHAIN_APPROX_TC89_L1应用 Teh-Chin 链近似算法 L1cv.CHAIN_APPROX_TC89_KCOS应用 Teh-Chin 链近似算法 KCOS contours检测到的轮廓列表储存图像中所有轮廓每个轮廓存储为点的向量hierarchy轮廓的层次结构可选项包含有关图像拓扑的信息offset每个轮廓点的偏移量可选项
使用 findContours()和cv.drawContours()查找、绘制轮廓的基本程序如下
# MattingFindContours.py
# Find contour by OpenCV
# Copyright 2021 youcans, XUPT
# Crated2021-12-10
import cv2 as cv
from matplotlib.figure import FigureimgOri cv2.imread(../images/imgGaia.tif, flags1)imgGray cv2.cvtColor(imgOri, cv2.COLOR_BGR2GRAY)
ret, thresh cv2.threshold(imgGray, 175, 255, cv2.THRESH_BINARY_INV)
# 寻找二值化图中的轮廓
image, contours, hierarchy cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
print(imgOri.shape, image.shape)# 绘制轮廓
imgC imgOri.copy()
contourPic cv2.drawContours(imgC, contours, -1, (0, 0, 255), 2)plt.figure(figsize(9, 6))
plt.subplot(131), plt.axis(off), plt.title(Origin)
plt.imshow(cv2.cvtColor(imgOri, cv2.COLOR_BGR2RGB))
plt.subplot(132), plt.title(Threshold), plt.axis(off)
plt.imshow(thresh, cmapgray, vmin0, vmax255)
plt.subplot(133), plt.title(Contours), plt.axis(off)
plt.imshow(cv2.cvtColor(contourPic, cv2.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()使用findContours()提取轮廓特征的结果如下图所示。 图4.4 提取轮廓特征
4.3 图像分割
图像分割是抠图的理论基础。
图像分割是指根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域并使这些特征在同一区域内呈现出相似性而在不同区域间呈现出明显的差异性。
基于阈值的分割方法基本思想是基于图像的灰度特征来计算一个或多个灰度阈值并将图像中每个像素的灰度值与阈值相比较最后将像素根据比较结果分到合适的类别中。因此该类方法最为关键的一步就是按照某个准则函数来求解最佳灰度阈值。
基于边缘的分割方法是基于灰度值的边缘检测。 基于区域的分割方法是将图像按照相似性准则分成不同的区域主要包括种子区域生长法、区域分裂合并法和分水岭法等几种类型。
【本节完】 版权声明
欢迎关注『Python 小白的项目实战 youcans』 原创作品
原创作品转载必须标注原文链接https://blog.csdn.net/youcans/article/details/122372133
Copyright 2022 youcans, XUPT
Crated2022-01-05 欢迎关注『Python 小白的项目实战 youcans』 原创作品 Python 小白的课题报告—OpenCV 抠图项目实战1目录摘要 Python 小白的课题报告—OpenCV 抠图项目实战2抠图绪论 Python 小白的课题报告—OpenCV 抠图项目实战3抠图综述 Python 小白的课题报告—OpenCV 抠图项目实战4固定阈值抠图 Python 小白的课题报告—OpenCV 抠图项目实战5自适应阈值抠图 Python 小白的课题报告—OpenCV 抠图项目实战6色彩范围抠图 Python 小白的课题报告—OpenCV 抠图项目实战7边缘检测 Python 小白的课题报告—OpenCV 抠图项目实战8图像轮廓 Python 小白的课题报告—OpenCV 抠图项目实战9评价指标 Python 小白的课题报告—OpenCV 抠图项目实战10PyQt5 使用 Python 小白的课题报告—OpenCV 抠图项目实战11算法实验平台 Python 小白的课题报告—OpenCV 抠图项目实战12源程序代码
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91871.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!