OpenCV python GrabCut算法提取前景背景图片

处理图片:[lena_color.jpg]

手动mask[mask.jpg]

import numpy as np
import cv2
import matplotlib.pyplot as pltdef main():# 1.导入图片img_src = cv2.imread("lena_color.jpg")img_rgb = cv2.cvtColor(img_src, cv2.COLOR_BGR2RGB)# 2.创建掩模图片mask = np.zeros(img_src.shape[:2], np.uint8)bg_model = np.zeros((1, 65), np.float64)fg_model = np.zeros((1, 65), np.float64)# 3.执行区域 前景背景分割rect = (50, 50, 400, 500)cv2.grabCut(img_src, mask, rect, bg_model, fg_model, 5, cv2.GC_INIT_WITH_RECT)# 4.导入手动掩模图片mask2 = cv2.imread("mask.jpg", 0)mask2_show = cv2.imread("mask.jpg", -1)m2_rgb = cv2.cvtColor(mask2_show, cv2.COLOR_BGR2RGB)# 5.执行mask 前景背景分割mask[mask2 == 0] = 0mask[mask2 == 255] = 1mask, bg_model, fg_model = cv2.grabCut(img_src, mask, None, bg_model, fg_model, 5, cv2.GC_INIT_WITH_MASK)mask = np.where((mask == 2) | (mask == 0), 0, 1).astype("uint8")# 6.分离前景背景图片img_gc = img_src * mask[:, :, np.newaxis]img_gc = cv2.cvtColor(img_gc, cv2.COLOR_BGR2RGB)# 7.显示结果plt.figure("显示结果", figsize=(12, 6))plt.subplot(131)plt.imshow(m2_rgb)plt.axis("off")plt.subplot(132)plt.imshow(img_gc)plt.axis("off")plt.subplot(133)plt.imshow(mask)plt.axis("off")plt.show()if __name__ == '__main__':main()

处理结果图片

OpenCV python GrabCut算法提取前景背景图片相关推荐

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

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

  2. opencv python 主色彩提取

    opencv python 主色彩提取 一.KMeans是什么? 二.具体步骤 1.读入图像 2.建立KMenas模型 3.使用KMeans聚类 4.统计各个聚类比率 5.根据比率建立色卡 三.代码示 ...

  3. OpenCV图像分割Grabcut算法

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

  4. 新年了,用python编程设计有意义背景图片的一朵玫瑰花给心爱的人吧

    新年了,用python编程设计有意义背景图片的一朵玫瑰花给心爱的人吧 在网上有很多画玫瑰的程序,可以放入pytharm中运行.我探索改进了一下,觉得做得可以个性化一点,这样送人玫瑰显得更有诚意.也为自 ...

  5. Python OpenCV学习笔记之:使用Grabcut算法进行图像背景和前景分割

    为什么80%的码农都做不了架构师?>>>    # -*- coding: utf-8 -*- """ 图像分割 """i ...

  6. python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景

    # 利用GrabCut算法从图像中分离出前景 import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg = ...

  7. Opencv的DPM算法提取图片目标

    使用Opencv的DPM算法进行检测行人,并提取存储 使用环境:win10+opencv3.4.0+opencv_contrib3.4.0+VS2017 环境配置方法: 参考该博客 https://w ...

  8. python 两种提取pdf中图片的包

    项目需求,提取pdf中图片,找半天的结果 1.fitz (我没找到元素定位的方法) pip install pymupdf import fitzdef extract_pic_from_pdf(pd ...

  9. Opencv实战之混合高斯前景背景分割算法

    -不管三七二十一,先上代码 -读取需要掌握的函数 # 相关函数 # cv.VideoCapture() 初始化摄像头,0开启第一个摄像头,1开启第2个摄像头,返回摄像头对象,一般会自动打开摄像头 # ...

最新文章

  1. HDU 2564 词组缩写
  2. python装饰器-python装饰器
  3. 功能测试话题分享-0323
  4. 朴素贝叶斯--文档分类
  5. 新浪微博爬虫设计(Python版)
  6. 多重插补 均值插补_Feature Engineering Part-1均值/中位数插补。
  7. 记一次ArrayList产生的线上OOM问题
  8. 502php,php502是什么问题
  9. 小米bl未解锁变砖了如何刷机_如何正确刷机
  10. 让TQ2440也用上设备树 (device tree 操作实例3_重要,对于移植很有参考价值_code)
  11. Docker配置远程访问
  12. 04.freetype显示中文
  13. 跟着团子学SAP:SAP用户状态管理详解(含权限分配等) OK02
  14. python R 实现数字变古诗
  15. 查找算法——二分查找(原理+源码)
  16. LEETCODE | PYTHON | 724 | 寻找数组的中心下标
  17. linux 查看硬盘的uuid_linux blkid命令显示块设备属性查看硬盘UUID号
  18. PS不能打开暂存盘文件解决办法
  19. AngularJS下一些JS的属性
  20. 机器视觉学习笔记--图像滤波1

热门文章

  1. 线性结构和非线性结构
  2. 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)
  3. rust sabrina 滑雪板_「Rust」夺冠 Valve Index连续十八周TOP10
  4. 大佬开源「抢茅台脚本」,火了
  5. [笔记]unsigned int 转 char 数组uitoa 函数
  6. 在微信小程序里,实现点击框里的眼睛图标时密码显示与隐藏切换
  7. 如何批量新建txt并命名?
  8. OpenCV图像像素遍历与访问
  9. 在docker容器里,ffmpeg给视频文件内嵌字幕文件,不生效,如何解决?
  10. mysql 最大连接池数_mysql 最大连接数 连接池