简单人像背景虚化处理思路如下:

对图像内容分割,提取人像,背景

背景模糊处理

人像与模糊处理后的背景融合

本实例使用DeepLabV3图像分割深度学习模型实现。代码如下:

import numpy as np

import tensorflow as tf

import cv2

from deeplabmodel import *

def create_pascal_label_colormap():

colormap = np.zeros((256, 3), dtype=int)

ind = np.arange(256, dtype=int)

for shift in reversed(range(8)):

for channel in range(3):

colormap[:, channel] |= ((ind >> channel) & 1) << shift

ind >>= 3

return colormap

def label_to_color_image(label):

if label.ndim != 2:

raise ValueError('Expect 2-D input label')

colormap = create_pascal_label_colormap()

if np.max(label) >= len(colormap):

raise ValueError('label value too large.')

return colormap[label]

def load_model():

model_path = '../resources/models/tensorflow/deeplabv3_mnv2_pascal_train_aug_2018_01_29.tar.gz'#'deeplab_model.tar.gz'

MODEL = DeepLabModel(model_path)

print('model loaded successfully!')

return MODEL

model = load_model()

src = cv2.imread('../resources/images/person2.jpg')

# 背景图像

src_view = cv2.imread('../resources/images/view.jpg')

resized_im, seg_map = model.run2(src)

resized_view = cv2.resize(src_view,(resized_im.shape[1],resized_im.shape[0]))

resized_view = cv2.medianBlur(resized_view,11)

seg_image = label_to_color_image(seg_map).astype(np.uint8)

print(seg_map.dtype)

# seg_map = cv2.GaussianBlur(np.uint8(seg_map),(11,11),0)

src_resized = cv2.resize(src,(resized_im.shape[1],resized_im.shape[0]))

# seg_image = cv2.GaussianBlur(seg_image,(11,11),0)

bg_img = np.zeros_like(src_resized)

# 复制背景

bg_img[seg_map == 0] = src_resized[seg_map == 0]

blured_bg = cv2.GaussianBlur(bg_img,(11,11),0)

result = np.zeros_like(bg_img)

# 合成

result[seg_map > 0] = resized_im[seg_map > 0]

result[seg_map == 0] = blured_bg[seg_map == 0]

# 背景变换与合成

result_2 = np.zeros_like(bg_img)

result_2[seg_map > 0] = src_resized[seg_map > 0]

result_2[seg_map == 0] = resized_view[seg_map == 0]

cv2.imshow('src',src)

cv2.imshow('resized_im',resized_im)

cv2.imshow("seg_image",seg_image)

cv2.imshow('bg_image',bg_img)

cv2.imshow('blured_bg',blured_bg)

cv2.imshow('result',result)

cv2.imshow('result_2',result_2)

cv2.waitKey()

cv2.destroyAllWindows()

程序运行结果:

原始图像:

提取的人像Mask图像:

背景图像:

背景模糊图像:

背景虚化结果:

背景替换结果:

基本实现人像背景虚化效果与背景替换,但是还有很多细节没有优化,后期将进一步优化。

python按钮虚化,深度学习与图像处理实例:人像背景虚化与背景替换相关推荐

  1. 深度学习与图像处理实例:人像背景虚化与背景替换

    简单人像背景虚化处理思路如下: 对图像内容分割,提取人像,背景 背景模糊处理 人像与模糊处理后的背景融合 本实例使用DeepLabV3图像分割深度学习模型实现.代码如下: import os from ...

  2. 如何用 Python 进行基于深度学习的计算机视觉项目开发?

    令人惊喜的"智能"年代 深度学习有着广阔的前景 我们正处在一个"智能"的年代,比如智能手机中的语音助手.机器翻译和人脸识别:战胜过日本将棋冠军.国际象棋冠军, ...

  3. 深度学习(图像处理)代码库

    为大家整理的代码资源库,收集了大量深度学习项目图像处理领域的代码链接.包括图像识别,图像生成,看图说话等等方向的代码,所有代码均按照所属技术领域建立索引,以便大家查阅使用. 2.1 图像生成  2.1 ...

  4. Python实现的深度学习技术在水文水质领域应用

    当前,深度学习作为人工智能的热门技术发展迅速,以其强大的非线性和不确定性处理能力在图像识别.语音识别.自然语言处理等领域取得了显著的成效.它是一种端到端的处理方法,在训练算法的指导下,深层神经网络自发 ...

  5. Python机器学习、深度学习库总结(内含大量示例,建议收藏)

    Python机器学习.深度学习库总结(内含大量示例,建议收藏) 前言 python常用机器学习及深度学习库介绍 总结与分类 python 常用机器学习及深度学习库总结 分类 更多 前言 目前,随着人工 ...

  6. Python机器学习、深度学习库总结

    Python机器学习.深度学习库总结(内含大量示例,建议收藏) 前言 python常用机器学习及深度学习库介绍 总结与分类 python 常用机器学习及深度学习库总结 分类 更多 前言 为了大家能够对 ...

  7. 30个顶级Python库 | 用于深度学习、自然语言处理和计算机视觉

    CDA数据分析师 出品 作者:Matthew Mayo 编译:Mika 今天我们来盘点一下有哪些用于深度学习.自然语言处理和计算机视觉的顶级Python库. 我们尽力将每个库按预期的使用情况进行归类, ...

  8. 双一流博士整理的计算机视觉学习路线(深度学习+传统图像处理)

    因工作需要,年初花了4个月左右时间学习了机器学习.神经网络相关的知识,工作日每天大概学习4-6个小时,周末每天大概10个小时,工作中的需求应对也得心应手了. 想快速入门的话,从自己的经验看,可以先不看 ...

  9. Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用

    Python是功能强大.免费.开源,实现面向对象的编程语言,在数据处理.科学计算.数学建模.数据挖掘和数据可视化方面具备优异的性能,这些优势使得Python在气象.海洋.地理.气候.水文和生态等地学领 ...

最新文章

  1. 低版本浏览器支持css3 Media查询的方法, ie6-ie8 不支持css3 的时候用respond.js,html5shiv.js 【非常实用哦】。。。。。。。。。。。。...
  2. 鑿婂瓙鏇版祴璇曡崏绋縶29C28FD771BA4B0D8693}
  3. Chapter 1 First Sight——9
  4. python语言中,对于cursor的查询明明有结果,为什么print cursor.rowcount结果为-1?
  5. 史蒂夫·乔布斯很懂团队建设
  6. 配置ip地址四种方法,方便学习linux的朋友
  7. COM应用实例--获取桌面墙纸路径
  8. Python、数据分析、机器学习、区块链大牛在偷偷看的9本书
  9. 直方图(信息学奥赛一本通-T1115)
  10. Java 蓝桥杯 A+B problem
  11. mysql 长轮询_基于HTTP长轮询实现简单推送
  12. SpringBoot - 多Profile使用与切换
  13. 一步一步写算法(之线性队列)
  14. 38个MySQL数据库的小技巧
  15. Vuex的State核心概念
  16. jquery 自定义插件!
  17. 记录一下我的蓝牙遥控小车
  18. 碧桂园建筑机器人造楼,梦照进现实还是“海市蜃楼”?
  19. dubbo服务者源码分期
  20. 基于matlab 论文知网,基于Matlab的数字图像处理

热门文章

  1. 超好看的Vscode软件的Windows和Mac快捷键大全
  2. 关于C++模板函数声明与定义的问题
  3. C++关于DLL导出模板类和模板函数
  4. 2006中国十大真话
  5. 设置win10屏幕旋转的快捷键冲突的问题
  6. Cesium实时目标跟踪最新特效教程系列2—粒子系统(实时发射波束跟踪目标)
  7. MyEclipse 2014 GA Windows版下载地址
  8. 关于ListView中notifyDataSetChanged()刷新数据不更新原因
  9. 埙曲推荐,《牧羊曲》简谱
  10. PageHelpe插件VO转换导致分页总数错误