# 利用GrabCut算法从图像中分离出前景
import numpy as np
import cv2 as cv
from matplotlib import pyplot as pltimg = cv.imread('meixi.jpg')
mask = np.zeros(img.shape[:2],np.uint8)# 用于润色图像的mask
newmask = cv.imread('m_mask.png',0)bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)# 前景位于矩形中
rect = (50,50,450,290)# 应用GrabCut算法的 GC_INIT_WITH_RECT 分离方法
cv.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv.GC_INIT_WITH_RECT)# 将可能的前景置为 1 ,可能的背景置为 0 。
mask = np.where((mask==2) | (mask==0),0,1).astype('uint8')# 进行图像润色,对不合理的划分通过手动设计 mask 划分
mask[newmask == 0] = 0
mask[newmask == 255] = 1img = img * mask[:,:,np.newaxis]plt.imshow(img)plt.show()

有不懂的地方请参考官方文档:

https://docs.opencv.org/4.1.0/d8/d83/tutorial_py_grabcut.html

python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景相关推荐

  1. OpenCV使用 GrabCut 算法进行交互式前景提取

    OpenCV使用 GrabCut 算法进行交互式前景提取 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python,OpenCV中的GrabCut 算法来提取图像中的前景,并为此创建一个交互 ...

  2. OpenCV图像分割Grabcut算法

    前言 1.OpenCV图像分割Grabcut算法主要功能是分割和抠图,就是把框着的目标抠出来,比如要分割出一个证件照的人的图像,只需要在目标外面画一个框,把目标框住,它就可以完成良好的分割. 2.算法 ...

  3. java grabcut,在OpenCV中应用GrabCut算法后获取相同的图像

    我使用GrabCut算法来分割我的图像my image,以检测我图像中的柑橘(水果)作为前景并从背景中减去它 . 为此,首先我必须在我的对象(水果)周围选择2个点,用于在我的对象(水果)周围绘制矩形, ...

  4. 利用进化算法+多进程/多线程来优化SVM中的两个参数:C和Gamma

    该案例展示了如何利用进化算法+多进程/多线程来优化SVM中的两个参数:C和Gamma. 在执行本案例前,需要确保正确安装sklearn,以保证SVM部分的代码能够正常执行. 本函数需要用到一个外部数据 ...

  5. opencv 从原始的图像中找出ROI区域

    http://blog.csdn.net/chentravelling/article/details/45331225 opencv 从原始的图像中找出ROI区域 #include <iost ...

  6. 如何使用OpenCV在图像中抠出指定的颜色区域

    1 简要说明及流程 我们往往需要在图像中抠出指定颜色的区域.在实际工况下这种指定颜色不是简单的纯色,往往难以单一的用R G B的某个范围值去确定. 本文以PhotoShop为基准,在一副彩色图中按照提 ...

  7. CV之FR之MTCNN:基于TF框架利用MTCNN算法检测并对齐人脸图像进(人脸识别/人脸相似度)而得出人脸特征向量从而计算两张人脸图片距离案例应用之详细攻略

    CV之FR之MTCNN:基于TF框架利用MTCNN算法检测并对齐人脸图像进(人脸识别/人脸相似度)而得出人脸特征向量从而计算两张人脸图片距离案例应用之详细攻略 目录 基于TF框架利用MTCNN算法检测 ...

  8. python使用matplotlib可视化折线图、在可视化图像中同时绘制多条折线图

    python使用matplotlib可视化折线图.在可视化图像中同时绘制多条折线图 目录 python使用matplotlib可视化折线图.在可视化图像中同时绘制多条折线图

  9. python opencv 利用分水岭算法实现对物体的分割 图文详细注释版 以分割官网提供的硬币为例

    分水岭算法可以实现自动分割多个物体,opencv中 cv.watershed() 函数实现了分水岭算法 话不多说,上代码 # 利用分水岭算法分离多个相同硬币 import numpy as np im ...

最新文章

  1. php函数的默认值,php函数指定默认值方法的小例子
  2. 获得插入行身份的最佳方法?
  3. Spring-注入参数详解-[集合类型属性]
  4. Android 顶部滑动切换实现(一)
  5. 来自未来,2022 年的前端人都在做什么?
  6. Java的executorservice_ExecutorService-10个要诀和技巧
  7. python财务案例分析考试答案_财务案例分析带答案(完整版)
  8. php 芝麻认证think_谈谈php对接芝麻信用踩的坑
  9. 联想商务机M8000T风扇狂转解决方法
  10. VSCode猜测字符编码
  11. 黑龙江大米:正宗东北大米,源于黑土地
  12. smalltalk资源
  13. android视频解码数据分辨率改变,Android实现任意分辨率视频编码的思考与实现
  14. java中0是真是假_为什么0为假?
  15. 并口串口接口定义(LPT COM Interface)
  16. 分享几个简单好用的导航
  17. GCD XOR UVA - 12716 ——筛法建立约数表+xor运算+数学规律
  18. 帆软 FCJA 2022
  19. 曾航:2014年移动互联网流量趋势
  20. jetson nano上手记录

热门文章

  1. python入门指南txt-【杂谈】爬虫基础与快速入门指南
  2. python3.6安装步骤-手动安装python3.6的操作过程详解
  3. 浅谈语音识别技术的发展趋势与应用前景 - 全文
  4. 语音识别开放平台调研以及主要技术
  5. ibm语音识别输入系统
  6. php分页显示多少页,php实现分页显示
  7. c语言如果x小于,请达人帮忙做份C语言试卷,谢谢了
  8. android 创建typeface 对象,java – 检查Android中的Typeface对象的族
  9. vue项目做本地代理
  10. android打开文件管理获取文件名,如何从android中的文件路径获取文件名