opencv函数findcontours_OpenCV小案例

67f4eee2895ec5b5955d1930672a7040.png
知乎视频​www.zhihu.com

直接放代码:

OpenCV小案例​github.com

0.OpenCV图像处理

比较基础,没详细整理.

1. OpenCV小案例

1.1.切边

- 问题描述:扫描仪扫描到的法律文件,需要切边,去掉边缘空白,这样看上去才真实。

- 方法一:通过边缘检测 + 轮廓发现或者直线检测最大外接矩形实现。首先canny边缘检测,然后findContours()找轮廓.

- 方法二:通过二值分割 + 形态学方法 + Hough直线 找到最大外接矩形。不太可靠.

1.2.直线检测

- 问题描述:寻找英语试卷填空题的下划线,这个对后期的切图与自动识别都比较重要。

- 方法:通过图像形态学操作来寻找直线,霍夫获取位置信息与显示。找到直线后就有了坐标然后根据坐标进行矩形截取,就得到了试卷中答题区域的信息。

1.3.对象提取

- 问题描述:真实案例,对图像中对象进行提取,获取这样对象,去掉其它干扰和非目标对象。

- 方法:二值分割 + 形态学处理 +横纵比计算

1.4.对象计数

- 问题描述: 农业领域经常需要计算对象个数或者在其它领域拍照自动计数,可以提供效率,减低成本

- 方法:通过二值分割+形态学处理+距离变换+连通区域计算

1.5.透视校正

- 问题描述:拍摄或者扫描图像不是规则的矩形,会对后期处理产生不好影响,需要通过透视变换校正得到正确形状。

- 方法:通过二值分割 + 形态学方法 + Hough直线 +透视变换

1.6.对象提取与测量

- 问题描述:照片是来自太空望远镜的星云图像,科学家想知道它的面积与周长。

- 方法:通过二值分割+图像形态学+轮廓提取

2.OpenCV图像分割

2.1.K-Means

- [ref](5分钟带你弄懂k-means聚类_黄飞的博客专栏-CSDN博客_k-means聚类分析)

- 数据聚类

1. 无监督学习方法

2. 分类问题,输入分类数目,初始化中心位置

3. 硬分类方法,以距离度量

4. 迭代分类为聚类

- 图像分割

- code

TermCriteria 

2.2.GMM

高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况。

- [ref0](3. EM算法-高斯混合模型GMM)

- [ref1](机器学习(十):EM算法与GMM算法原理及案例分析)

- GMM方法

1.高斯混合模型 (GMM)

2. 高斯分布与概率密度分布 - PDF

3. 初始化

4.最大似然法

- 特点

1.跟K-Means相比较,属于软分类

2.实现方法-期望最大化(E-M),EM算法是一种迭代算法.

3.停止条件-收敛

4.很耗时

- code

//EM 训练

2.3.分水岭方法

区别于聚类算法与GMM算法,分水岭不需要指定分割成多少块。

- [ref](OpenCV学习(7) 分水岭算法(1))

- 原理

1.基于浸泡理论的分水岭分割方法

2.基于连通图的方法

3.基于距离变换的方法(opencv实现的方法)

- 步骤

1. 图像形态学操作

2. 分水岭分割方法原理

输入图像->灰度-> 二值->距离变换->寻找种子->生成Marker->分水岭变换->输出图像->End

- [均值漂移算法.](C++ OpenCV图像均值偏移滤波)

- 应用

分割粘连对象,实现形态学操作与对象计数. 图像分割

- code

pyrMeanShiftFiltering

2.4.GrabCut

可以用户交互的抠图方法,目标明确,认为的选定ROI区域。

- [ref](OpenCV学习(21) Grabcut算法详解)

- [ref](Title)

- 流程

输入图像-> 矩形输入-> 初始分类-> GMM描述-> GMM训练分类-> Graph Cut分类-> 最终收敛分类-> 停止

- code

setMouseCallback

2.5.demo1-背景替换

- 关键点

1.K-Means

2.背景融合 – 高斯模糊

3.遮罩层生成

- 步骤

开始-> 数据组装-> K-Means分割-> 背景去除-> 遮罩生成-> 遮罩模糊-> 通道混合输出-> End

2.6.demo2-视频背景替换

- 算法选择

1.GMM或者Kmeans - ?? Bad idea, very slow!!!

2.基于色彩的处理方法

3.RGB与HSV色彩空间

cvtColor

3.OpenCV-GOCvHelper

吐槽:垃圾知乎,2020了还只支持富文本输入!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值