照片换底色~~勉强能看

本文详细介绍了如何使用OpenCV库在Python中实现照片底色的更换过程。从安装必要的包开始,到读取和展示图片,接着进行灰度化、二值化处理,再通过腐蚀或膨胀去除噪点,最后实现底色的更换。文中提供了具体代码示例,展示了每个步骤的操作。
摘要由CSDN通过智能技术生成

照片就不放了,直接动手,看看怎么换照片底色吧。
但是不得不说,PS玩得好替换效果肯定比这好。
参考博文:https://mp.weixin.qq.com/s/Cgg8PlIzx-ZXU_sEeGVKsw

第一步 装包
避坑:直接装cv2会报错,所以promt里装了另外一个包,pip install opencv-python。这个包已经包含了cv2。

import cv2
import numpy as np

第二步 读取展示图片
避坑:imshow和waitKey命令要一起运行,否则无法显示图片。另外waitKey()的K大写。

# 读取照片
img = cv2.imread(r'C:/Users/lee/Desktop/1.jpg')
# 展示照片
cv2.imshow('img',img)

# 窗口等待的命令,0表示无限等待
cv2.waitKey(0)

第三步 灰度化与二值化

# 图片转换为灰度化图
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

# 图片的二值化处理
lower_blue = np.array([90,70,70])
upper_blue = np.array([110,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)

第四步 噪点腐蚀/膨胀(二选一,看效果)

#腐蚀
erode=cv2.erode(mask,None,iterations=1)
cv2.imshow('erode',erode)
#膨胀
dilate=cv2.dilate(erode,None,iterations=1)
cv2.imshow('dilate',dilate)

第五步 换底色
原理:将二值化的白色转为想要的背景色,将其他像素点颜色还原


#遍历每个像素点,进行颜色的替换
rows=255
cols=187
for i in range(rows):
  for j in range(cols):
    if erode[i,j]==255: # 像素点为255表示的是白色,我们就是要将白色处的像素点,替换为红色
      img[i,j]=(0,0,255) # 此处替换颜色,为BGR通道,不是RGB通道
cv2.imshow('res',img)

# 窗口等待的命令,0表示无限等待
cv2.waitKey(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值