opencv转换颜色空间更改图片背景


Posted in Python onAugust 20, 2019

本文实例为大家分享了opencv转换颜色空间更改图片背景的具体代码,供大家参考,具体内容如下

思路:

1、将BGR转换为HSV颜色空间
2、设置掩模
3、位运算

这里以更改摩托罗拉logo背景为例,图片在必应图片搜索得知,具体代码如下:

import numpy as np
import cv2
from imageio import imread
import matplotlib.pyplot as plt

def show(img,winname = "img"):
 cv2.namedWindow(winname,cv2.WINDOW_GUI_NORMAL)
 cv2.imshow(winname,img)
 cv2.waitKey(0)
 cv2.destroyAllWindows()

imgpath = r'motorola.jpg'

img = imread(imgpath)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
if img.shape == 4:
 img = img[:,:,:3]

show(img)
print(img.shape)

bgd = np.ones(img.shape,dtype=np.uint8)
bgd[:,:,:] = 255 #转换为白色背景
show(bgd,"white")
# 转换颜色空间
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
# show(hsv)
# 绿色分量掩模,使用inRange函数
# lowergreen = np.array([35,43,46],dtype = np.uint8)
# uppergreen = np.array([77,255,255],dtype=np.uint8)
# maskgreen = cv2.inRange(hsv,lowergreen,uppergreen)
# show(maskgreen)

# 蓝色分量掩模,使用inRange函数
lowerblue = np.array([100,43,46],dtype = np.uint8)
upperblue = np.array([124,255,255],dtype=np.uint8)
maskblue = cv2.inRange(hsv, lowerblue, upperblue)
maskblue_inv = cv2.bitwise_not(maskblue)
show(maskblue,'maskblue')
show(maskblue_inv,'maskblue_inv')
# 腐蚀操作
kernel_erode = np.ones((3,3),dtype = np.uint8)
erode = cv2.erode(maskblue,kernel_erode)

# 膨胀操作
kernel_dilate = np.ones((5,5),np.uint8)
dilate = cv2.dilate(erode, kernel = kernel_dilate)

show(erode,'erode')

# 前景色只留下蓝色字体部分
fg = cv2.bitwise_and(img,img,mask = maskblue)
show(fg,'fg')
# 背景中除去蓝色字体部分
bg = cv2.bitwise_and(bgd,bgd,mask = maskblue_inv)
show(bg,'bg')
# 前景色和背景色相加
dst = cv2.add(bg,fg)
show(dst,'dst')

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

Python 相关文章推荐
python判断端口是否打开的实现代码
Feb 10 Python
python显示天气预报
Mar 02 Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
Python实现把json格式转换成文本或sql文件
Jul 10 Python
python简单文本处理的方法
Jul 10 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
在Python 字典中一键对应多个值的实例
Feb 03 Python
python读写文件write和flush的实现方式
Feb 21 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
Python根据指定文件生成XML的方法
Jun 29 Python
pytorch 预训练层的使用方法
Aug 20 #Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 #Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 #Python
python实现抠图给证件照换背景源码
Aug 20 #Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 #Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 #Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 #Python
You might like
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
javascript中的if语句使用介绍
2013/11/20 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
python字典多条件排序方法实例
2014/06/30 Python
python实现简单flappy bird
2018/12/24 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python绘制股票移动均线的实例
2019/08/24 Python
pygame实现成语填空游戏
2019/10/29 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
前台接待的工作职责
2013/11/21 职场文书
日化店促销方案
2014/03/26 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
三问三解心得体会
2014/09/05 职场文书
市场部经理岗位职责
2015/02/02 职场文书
思想道德自我评价2015
2015/03/09 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
java executor包参数处理功能 
2022/02/15 Java/Android
Python各协议下socket黏包问题原理
2022/04/12 Python