利用OpenCV的Grabcut()函数实现图像的前景与背景的分割-并对Grabcut()作详细介绍
图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601
Graphcut是一种基于图论的分割方法,在计算机视觉领域中应用于前景分割、医学处理、纹理分割及立体视觉等方面,类似于PS中的抠图功能。基本图论的分割技术是图像分割领域中新的研究热点,该方法基于能量优化算法,将图像分割问题转换为图的最小割优化问题。
Grabcut是Graphcut算法的改进,Graphcut是一种直接基于图切算法的图像分割技术,仅仅需要确认前景与背景输入,该算法就可以完成背景与前景相似督导赋权图,并通过最优切割来实现图像分割。Grabcut算法可以不需要用户交互,仅仅需要输入包含目标前景的区域就可以完成前景与前景的分离。
Graphcut的目标和背景模型是灰度直方图,Grabcut采用的是RGB三通道混合高斯模型;Graphcut的能量最小化分割是能通过一次计算实现的,而Grabcut是根据分割模型参数更新完成学的学习过程;Graphcut需要用户输入前景与背景区域点集,而Grabcut只需要提供含有背景的区域像素集就可以完成分割。
上面三段话纯属装逼,实际上,只是对Grabcut算法和Graphcut算法大致的介绍,要说为什么是那样,我现在也说不清楚,如果想了解详细原理,可以参考相关论文和下面这三篇博文
图像分割之(一)概述_zouxy09的专栏-CSDN博客_图像分割概述
图像分割之(二)Graph Cut(图割)_zouxy09的专栏-CSDN博客_graphcut
图像分割之(三)从Graph Cut到Grab Cut_zouxy09的专栏-CSDN博客_graphcut图像分割
OpenCV中提供了Grabcut函数用于实现Grabcut操作,原型如下:
void grabCut(InputArray image, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mode)
对这个函数的参数的介绍和具体的示例代码请访问博文0043-使用Grabcut函数完成前景与背景的分割_清溪算法-CSDN博客获取
对这个函数的参数的介绍和具体的示例代码请访问博文0043-使用Grabcut函数完成前景与背景的分割_清溪算法-CSDN博客获取
对这个函数的参数的介绍和具体的示例代码请访问博文0043-使用Grabcut函数完成前景与背景的分割_清溪算法-CSDN博客获取
图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601
相关文章
- OpenCV中LineTypes各枚举值(LINE_4 、LINE_8 、LINE_AA )的含义
- 详解OpenCV的视频背景/前景分割(背景建模/前景提取)类cv::BackgroundSubtractorMOG2,并利用它实现对道路监控视频前景/背景的提取
- 图像或轮廓的Hu矩的定义、优缺点、适用范围,并利用OpenCV的函数HuMoments()和matchShapes()实现Hu矩的计算和轮廓匹配
- OpenCV环境下实现图像任意角度旋转的原理及代码
- 使用OpenCV的函数hconcat()、vconcat()实现图像或矩阵的连接
- 详解OpenCV的函数adaptiveThreshold(),并利用它实现图像的自适应二值化阈值分割
- 图像Gamma(伽玛)校正的原理及OpenCV代码实现
- Python-OpenCV 图像叠加加权实现
- 使用opencv库编译代码并运行
- 在matlab和opencv中分别实现稀疏表示
- opencv实现canopy算法
- Opencv级联分类器实现人脸识别
- OpenCV cv2.putText实现字符串换行'n'
- OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域
- 如何在OpenCV Python中翻转图像?
- Ubuntu18.04下OpenCV调用笔记本摄像头
- 【图像处理】——Python实现几何变换(自定义+opencv库)