GrabCut提取前景色MATLAB代码(含解释说明)

  • GrabCut简介
    • MATLAB实现效果图
    • MATLAB代码实现

GrabCut简介

GrabCut是Graph Cut的改进版,是迭代的Graph Cut。OpenCV中的GrabCut算法是依据《“GrabCut” - Interactive Foreground Extraction using Iterated Graph Cuts》这篇文章来实现的。该算法利用了图像中的纹理(颜色)信息和边界(反差)信息,只要少量的用户交互操作即可得到比较好的分割结果。
与Graph cut指定两个顶点不同,grabcut只需指定一个粗略的能将目标框住的边框就可以完成良好的分割。(好比PS中的魔棒工具,效果和PS抠图一样。)

简介来源:简书(https://www.jianshu.com/p/1618b281b707)

小编也是刚刚学习,理论的东西我也在这里扯不清楚,直接上代码,看码说话!

MATLAB实现效果图


这是ROI区域的选取,可以指定点提取或者手动选取,具体操作见代码,两种方式都给出来了。

Grabcut处理的整个流程图,右下角为分割出来的前景区域

MATLAB代码实现

Grabcut的MATLAB代码如下,如果这段代码都看不懂,说明MATLAB图像处理基础课没入门,需要加油哈!

%% GrabCut 函数应用
% 从图像中抠出前景色clear;clc;
%读入RGB图像
RGB = imread('peppers.png');%可以自行更改图片
%超像素分割——创建一个同样大小的图像
L = superpixels(RGB,500);%% 创建可变多边形
imshow(RGB)
%①手动创建,gca为函数句柄
% 在弹出figure窗口直接鼠标点击选取闭环区域。
%h1 = impoly(gca); %impoly() = drawpolygon() = drawpolyline()%②定点创建,gca为函数句柄
h1 = impoly(gca,[72,105; 1,231; 0,366; 104,359;...394,307; 518,343; 510,39; 149,72]);%% 获取ROI位置坐标
ROIPoints = getPosition(h1);%% 将感兴趣区域(ROI)多边形转换为区域蒙版
% poly2mask(x,y,m,n)从在x和y处具有顶点的ROI多边形计算大小为m×n的二进制感兴趣区域(ROI)掩模BW。
ROI = poly2mask(ROIPoints(:,1),ROIPoints(:,2),size(L,1),size(L,2));%% 开始分割
BW = grabcut(RGB,L,ROI);
figure
subplot(223);
imshow(BW);
title('分割模板');maskedImage = RGB;
%将maskedImage图像背景全部改为0,即黑色
maskedImage(repmat(~BW,[1 1 3])) = 0;
subplot(224);
imshow(maskedImage)
title('分割效果');subplot(221);
imshow(RGB);
title('原始图像');subplot(222);
imshow(L);
title('L模板');

GrabCut提取图像前景色MATLAB代码实现(含解释说明)相关推荐

  1. MATLAB代码:含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度

    MATLAB代码:含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度 关键词:冰蓄冷空调 CCHP-MG 多时间尺度优化 冷热电联供 参考文档:<含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度& ...

  2. MATLAB代码:含多种需求响应及电动汽车的微网/虚拟电厂日前优化调度 计及电动汽车和需求响应的多类电力市场下虚拟电厂竞标模型

    MATLAB代码:含多种需求响应及电动汽车的微网/虚拟电厂日前优化调度 关键词:需求响应 空调负荷 电动汽车 微网优化调度 虚拟电厂调度 参考文档: <计及电动汽车和需求响应的多类电力市场下虚拟 ...

  3. 【图像分割】基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  4. Python grabcut 提取图像前景

    grabcut是一个非常实用的提取图像前景的算法.该方法是一种基于图切割的图像分割方法,是基于graph cut算法的改进.grabcut是需要少量用户交互操作.简单的说,就是需要用户指定要识别的区域 ...

  5. CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)

    一.动态多目标优化问题简介 现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objecti ...

  6. 【图像配准】基于Horn-Schunck和Lucas-Kanade等光流场实现图像配准matlab源码含GUI界面

    光流法理论背景 1.什么是光流 光流(optical flow)是空间运动物体在观察成像平面上的像素运动的瞬时速度. 光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前 ...

  7. 基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  8. 基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)

    摘要:当前深度学习在目标检测领域的影响日益显著,本文主要基于深度学习的目标检测算法实现车辆检测,为大家介绍如何利用MATLAB\color{#4285f4}{M}\color{#ea4335}{A}\ ...

  9. 【图像边缘检测】基于蚁群算法实现图像边缘检测matlab代码

    1 简介 目的提出基于蚂蚁算法的图像分割技术,解决传统的图像分割算法分割图像的效果不理想.不能满足图像分割要求等问题.方法将图像的灰度.梯度和邻域特征组合成蚂蚁,通过MATLAB实现蚁群图像分割算法对 ...

  10. 【图像检测】基于mom方法结合Hessian和曲线拟合的方法实现血管的直径并输出测量图像附matlab代码

    1 内容介绍 在骨架化提取出血管中心线的基础上,提出一种基于MoM评价模型的冠脉血管直径的跟踪测量方法.该算法利用血管的两条边缘线相对于中心线的对称性和最优化评价思想,通过对实际造影图像的量化测量并将 ...

最新文章

  1. 利用Perl生成随机复杂密码
  2. (课程)基于Spark的机器学习经验
  3. 网页打印javascript:window.print()
  4. 【渝粤教育】广东开放大学 国际金融 形成性考核 (48)
  5. 单片机全局有必要封装_C语言开发单片机为什么大多数都采用全局变量的形式?...
  6. java传输文件暂停_java – 在文件下载中实现暂停/恢复
  7. 解决WP表前缀更换后出现的You do not have sufficient permission
  8. 学习动态性能表(19)--v$undostat
  9. c语言平均绩点_如何靓化你的GPA
  10. python操作系统课程设计_操作系统课程设计.pdf
  11. R语言--Cox模型校准曲线原理(二)算法
  12. iOS 分享 第三方登录 Twitter 注册应用以及读写权限
  13. html5单行文本框属性,文本框list属性和文本框autocomplete属性
  14. 大数据即将突破万亿,数据科技如何落地成产品?
  15. python制作简单动画_Python tkinter Canvas绘制动画
  16. 线段树 树状数组 离散化相关例题
  17. 【英语:语法基础】C4.日常对话-餐饮专题
  18. python 识图点击_Python图片识别——人工智能篇
  19. of undifine报错
  20. Debian 修改系统语言

热门文章

  1. 《SteamVR2.2.0传送机制(Teleport)=快速入门大结局》(Yanlz+Unity+XR+SteamVR+Interaction+Teleport+Valve+立钻哥哥++ok++)
  2. 京东方、立讯精密纷纷向苹果靠拢,再次撕下国产手机遮羞布
  3. 史上最经典摇滚柔情曲15首
  4. Windows徽标键的使用
  5. stata-如何快速合并多个文件夹下的数据文件
  6. 微信服务器维护中什么意思,公众号运营维护是什么意思,微信公众号的日常运营与维护技巧!...
  7. 机器学习-LDA--景区评论分析 ipython
  8. canvas 水墨画效果
  9. worldwind 三维模型加载优化总结
  10. MAC上有哪些优秀的日常软件| 入门级Mac OS 用户必备软件