目录
一:背景和原理
现实工作中,有时需要更换照片的底色,例如证件照,有需要蓝底的,也有需要红底的。有的广告背景图也需要更换底色。那么如何通过opencv实现快速更换图片底色呢。下面我们以更换证件照底色为例讲下原理:
假如是蓝色的证件照需要更换为红色的,具体流程如下:
1:我们首先将图片进行压缩处理,便于后续对图片进行调整;
2:压缩后的图像需要转为hsv灰度图片,然后将蓝色范围的像素全部变成红色;
3:对白色区域进行腐蚀和膨胀操作,主要是去除毛刺和细小的东西;
4:循环操作原图,对白色的区域替换为红色。
二:代码实现
1:压缩
import cv2
import numpy as np
img = cv2.imread('ttt.jpg')
img = cv2.resize(img,None,fx=0.5,fy=0.5)
cv2.imshow('img ',img )
2:转化为灰度图
import cv2
#将图片转为灰度图
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imshow('hsv ',hsv )