前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >今天抠图,Python实现一键换底片!想换什么换什么(附源码)

今天抠图,Python实现一键换底片!想换什么换什么(附源码)

作者头像
松鼠爱吃饼干
发布2020-09-15 15:46:24
1.6K0
发布2020-09-15 15:46:24
举报
文章被收录于专栏:Python分享Python分享

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利,私信“资料”可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。

生活中我们会拍很多的证件照,有的要求红底,有的是白底,有的是蓝底,今天不通过抠图,实现一键换底片!想换什么换什么

知识点:

1.图像处理

2.OpenCV

3.numpy

4.python基础知识

环境:

windows

pycharm

python3

步骤

倒入库

代码语言:javascript
复制
import numpy as np
import cv2

如果直接在命令提示符中安装的话要换个名称

代码语言:javascript
复制
pip install OpenCV-python

图像导入

代码语言:javascript
复制
img = cv2.imread('timg.jpg')

缩放

代码语言:javascript
复制
rows,cols,channels = img.shape
print(rows,cols,channels)
img = cv2.resize(img,None,fx=0.5,fy=0.5)
rows,cols,channels = img.shape
print(rows,cols,channels)

显示图像内容,并进行处理

转换图像为二值化图

代码语言:javascript
复制
cv2.imshow('img',img)

hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

cv2.imshow('hsv',hsv)
lower_blue = np.array([90,70,90])
upper_blue = np.array([110,255,255])

二值化功能

代码语言:javascript
复制
mask = cv2.inRange(hsv,lower_blue,upper_blue)
cv2.imshow('Mask',mask)

腐蚀

代码语言:javascript
复制
erosion = cv2.erode(mask,None,iterations=1)
cv2.imshow('erosion',erosion)

膨胀

代码语言:javascript
复制
dilation = cv2.dilate(mask ,None,iterations=1)
cv2.imshow('dilation',dilation)
代码语言:javascript
复制
for i in range(rows):
    for j in range(cols):
        if dilation[i,j] == 255:
            img[i,j] = (0,0,255)   # rgb(255,0,0)  BGR()
            
cv2.imshow('res',img)

保存

代码语言:javascript
复制
cv2.imwrite('ting.png',img)
cv2.waitKey(0)  # 0 无限等待
cv2.destroyAllWindows()  # 销毁所有的窗口
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

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

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

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