前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编码蓝幕/证件照背景替换

编码蓝幕/证件照背景替换

作者头像
小飞侠xp
发布2018-08-28 17:52:41
5860
发布2018-08-28 17:52:41
举报
代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
import cv2 #OpenCv
Read in the display the image
代码语言:javascript
复制
# Read in the image
image = cv2.imread('image_name.jpg')
#print out the type of image data and its dimension
print('This image is :',type(image),
        'with dimensions', image.shape)
代码语言:javascript
复制
%matplotlib inline
plt.imashow(image)

此时你会发现背景可能是红色,不是预料的蓝色,这是因为OpenCv会把彩色图像读取成BGR(蓝绿红)图像

代码语言:javascript
复制
image_copy = np.copy(image) #make a copy
# 改成RGB
image_copy = cv2.cvtColor(image_copy, cv2.COLOR_BGR2RGB)
plt.imshow(image_copy)

定义颜色阈值

代码语言:javascript
复制
#defin![微信截图_20180804114738.png](https://upload-images.jianshu.io/upload_images/8789591-7f216140fd83cc01.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
e our color selection boundaries in RGB value
lower_blue = np.array([0,0,230])
upper_blue = np.array([100,150,255])

Create mask #把我们选定的感兴趣区域分离出来以便进行操作

代码语言:javascript
复制
mask= cv2.inRange(image_copy, lower_blue,upper_blue) # mask 会显示出在范围内的像素
# Vizualize the mask
plt.imshow(mask, cmap ='gray')
代码语言:javascript
复制
# 展示主体
masked_image = np.copy(image_copy)
masked_image[mask != 0] = [0,0,0]
代码语言:javascript
复制
# Mask and add a background image
background_image = cv2.imread('image.jpg')
background_image = cv2.cvtColor(background_image,cv2.COLOR_BGR2RGB)
crop_background = background_image(0:514,0:816) #调整图片尺寸
crop_background[mask == 0]= [0,0,0]
代码语言:javascript
复制
complete_image = crop_background + masked_image
plt.imshow(complete_image)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Read in the display the image
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档