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

import matplotlib.pyplot as plt
import numpy as np
import cv2 #OpenCv

Read in the display the image

# 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)
%matplotlib inline
plt.imashow(image)

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

image_copy = np.copy(image) #make a copy
# 改成RGB
image_copy = cv2.cvtColor(image_copy, cv2.COLOR_BGR2RGB)
plt.imshow(image_copy)

定义颜色阈值

#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 #把我们选定的感兴趣区域分离出来以便进行操作

mask= cv2.inRange(image_copy, lower_blue,upper_blue) # mask 会显示出在范围内的像素
# Vizualize the mask
plt.imshow(mask, cmap ='gray')
# 展示主体
masked_image = np.copy(image_copy)
masked_image[mask != 0] = [0,0,0]
# 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]
complete_image = crop_background + masked_image
plt.imshow(complete_image)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 图像和视频分析 原文:Images and Video Analysis 译者:飞龙 协议:CC BY-NC-SA...
    布客飞龙阅读 14,969评论 0 94
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,053评论 3 119
  • 一 “你丫就是一乌鸦嘴!”小枫拿手指着唐淼,恶狠狠地盯着她说。 唐淼盯着他发红的眼眶,一把打掉他颤抖的手,“你又不...
    Clergy阅读 3,184评论 2 1
  • 承诺不同与想法,想法只停留在脑际,默默地只有自己知道,而承诺,哪怕是对自己的承诺,也要郑重表达岀来,要知道人性有很...
    绽放不停笔阅读 2,895评论 0 0
  • 半夜小更多没有拍过程图
    乌龙茶低糖阅读 3,392评论 9 15

友情链接更多精彩内容