python和opencv实现抠图


Posted in Python onJuly 18, 2018

本文实例为大家分享了python实现抠图的具体代码,供大家参考,具体内容如下

其中使用了opencv中的grabcut方法

直接上代码

# encoding:utf-8
# 图像提取
# create by 
 
import numpy as np
import cv2
from matplotlib import pyplot as plt
 
img = cv2.imread('1.jpg')
mask = np.zeros(img.shape[:2], np.uint8)
 
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
 
rect = (20, 20, 413, 591)
cv2.grabCut(img, mask, rect, bgdModel, fgdModel, 10, cv2.GC_INIT_WITH_RECT)
 
mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype('uint8')
img = img * mask2[:, :, np.newaxis]
img += 255 * (1 - cv2.cvtColor(mask2, cv2.COLOR_GRAY2BGR))
# plt.imshow(img)
# plt.show()
img = np.array(img)
mean = np.mean(img)
img = img - mean
img = img * 0.9 + mean * 0.9
img /= 255
plt.imshow(img)
plt.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的函数用法入门教程
Sep 02 Python
python遍历类中所有成员的方法
Mar 18 Python
几个提升Python运行效率的方法之间的对比
Apr 03 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
使用Eclipse如何开发python脚本
Apr 11 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
对numpy中的where方法嵌套使用详解
Oct 31 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
Django REST framework 单元测试实例解析
Nov 07 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
使用npy转image图像并保存的实例
Jul 01 Python
Python 中数组和数字相乘时的注意事项说明
May 10 Python
Python错误处理操作示例
Jul 18 #Python
Python内存读写操作示例
Jul 18 #Python
NumPy 数学函数及代数运算的实现代码
Jul 18 #Python
Sanic框架应用部署方法详解
Jul 18 #Python
Python Web编程之WSGI协议简介
Jul 18 #Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 #Python
详解flask入门模板引擎
Jul 18 #Python
You might like
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
jQuery学习笔记之Helloworld
2010/12/22 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
python flask实现分页的示例代码
2018/08/02 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
linux面试题参考答案(1)
2016/01/22 面试题
员工工作表扬信范文
2014/01/13 职场文书
不假外出检讨书
2014/01/27 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
医德医风自我评价2015
2015/03/03 职场文书
思想道德自我评价2015
2015/03/09 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android