python和opencv实现抠图

yipeiwu_com7年前Python基础

本文实例为大家分享了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 xlsxwriter库生成图表的应用示例

python xlsxwriter库生成图表的应用示例

xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外 还可以加上很形象的各种图,比如柱状图、饼图、折线图等。 xls...

python里运用私有属性和方法总结

python里运用私有属性和方法总结

如何在PYTHON里运用私有属性和方法 class File: def __init__(self, name): self.name = name sel...

python 实现在tkinter中动态显示label图片的方法

python 实现在tkinter中动态显示label图片的方法

在编程中我们往往会希望能够实现这样的操作:点击Button,选择了图片,然后在窗口中的Label处显示选到的图片。那么这时候就需要如下代码: from tkinter import...

详解python运行三种方式

方式一 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。 linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口...

python3判断url链接是否为404的方法

本文实例为大家分享了python3判断url链接是否为404的具体代码,供大家参考,具体内容如下 import pymysql import threading import ti...