OpenCV python GrabCut算法提取前景背景图片
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算法提取前景背景图片相关推荐
- OpenCV使用 GrabCut 算法进行交互式前景提取
OpenCV使用 GrabCut 算法进行交互式前景提取 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python,OpenCV中的GrabCut 算法来提取图像中的前景,并为此创建一个交互 ...
- opencv python 主色彩提取
opencv python 主色彩提取 一.KMeans是什么? 二.具体步骤 1.读入图像 2.建立KMenas模型 3.使用KMeans聚类 4.统计各个聚类比率 5.根据比率建立色卡 三.代码示 ...
- OpenCV图像分割Grabcut算法
前言 1.OpenCV图像分割Grabcut算法主要功能是分割和抠图,就是把框着的目标抠出来,比如要分割出一个证件照的人的图像,只需要在目标外面画一个框,把目标框住,它就可以完成良好的分割. 2.算法 ...
- 新年了,用python编程设计有意义背景图片的一朵玫瑰花给心爱的人吧
新年了,用python编程设计有意义背景图片的一朵玫瑰花给心爱的人吧 在网上有很多画玫瑰的程序,可以放入pytharm中运行.我探索改进了一下,觉得做得可以个性化一点,这样送人玫瑰显得更有诚意.也为自 ...
- Python OpenCV学习笔记之:使用Grabcut算法进行图像背景和前景分割
为什么80%的码农都做不了架构师?>>> # -*- coding: utf-8 -*- """ 图像分割 """i ...
- python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景
# 利用GrabCut算法从图像中分离出前景 import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg = ...
- Opencv的DPM算法提取图片目标
使用Opencv的DPM算法进行检测行人,并提取存储 使用环境:win10+opencv3.4.0+opencv_contrib3.4.0+VS2017 环境配置方法: 参考该博客 https://w ...
- python 两种提取pdf中图片的包
项目需求,提取pdf中图片,找半天的结果 1.fitz (我没找到元素定位的方法) pip install pymupdf import fitzdef extract_pic_from_pdf(pd ...
- Opencv实战之混合高斯前景背景分割算法
-不管三七二十一,先上代码 -读取需要掌握的函数 # 相关函数 # cv.VideoCapture() 初始化摄像头,0开启第一个摄像头,1开启第2个摄像头,返回摄像头对象,一般会自动打开摄像头 # ...
最新文章
- HDU 2564 词组缩写
- python装饰器-python装饰器
- 功能测试话题分享-0323
- 朴素贝叶斯--文档分类
- 新浪微博爬虫设计(Python版)
- 多重插补 均值插补_Feature Engineering Part-1均值/中位数插补。
- 记一次ArrayList产生的线上OOM问题
- 502php,php502是什么问题
- 小米bl未解锁变砖了如何刷机_如何正确刷机
- 让TQ2440也用上设备树 (device tree 操作实例3_重要,对于移植很有参考价值_code)
- Docker配置远程访问
- 04.freetype显示中文
- 跟着团子学SAP:SAP用户状态管理详解(含权限分配等) OK02
- python R 实现数字变古诗
- 查找算法——二分查找(原理+源码)
- LEETCODE | PYTHON | 724 | 寻找数组的中心下标
- linux 查看硬盘的uuid_linux blkid命令显示块设备属性查看硬盘UUID号
- PS不能打开暂存盘文件解决办法
- AngularJS下一些JS的属性
- 机器视觉学习笔记--图像滤波1
热门文章
- 线性结构和非线性结构
- 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)
- rust sabrina 滑雪板_「Rust」夺冠 Valve Index连续十八周TOP10
- 大佬开源「抢茅台脚本」,火了
- [笔记]unsigned int 转 char 数组uitoa 函数
- 在微信小程序里,实现点击框里的眼睛图标时密码显示与隐藏切换
- 如何批量新建txt并命名?
- OpenCV图像像素遍历与访问
- 在docker容器里,ffmpeg给视频文件内嵌字幕文件,不生效,如何解决?
- mysql 最大连接池数_mysql 最大连接数 连接池