您当前的位置:首页 > 计算机 > 编程开发 > Python

python照片更换底图

时间:04-28来源:作者:点击数:

python照片更换底图

将rgb转成hsv,进行处理

图片来自网络,侵删。

# -*- coding:utf-8 -*- 
#yys
import cv2
import numpy as np
print(cv2.__version__)#3.4.4

img=cv2.imread("1.jpg",1)
#H S V (Hue, Saturation, Value)
#Hue 色调,Saturation饱和,Value:亮度值
img_hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

img_gray=cv2.cvtColor(img_hsv,cv2.COLOR_BGR2GRAY)
rows,cols=img_gray.shape

lower_value=np.array( [30,150,150] )
upper_value=np.array( [120,230,255] )

#实现二值化的功能
mask=cv2.inRange(img_hsv,lower_value,upper_value)
mask2rgb=cv2.cvtColor(mask,cv2.COLOR_GRAY2BGR)

kernel = np.ones((3,3), np.uint8)
#腐蚀
mask=cv2.erode(mask, kernel=kernel,iterations=1)
#  膨胀
mask=cv2.dilate(mask, kernel=kernel ,iterations=3)

img1=img.copy()
for i in range(rows):
    for j in range(cols):
        if mask[i,j]!=0:
            img1[i,j] =(255,0,0)
cv2.namedWindow("img", cv2.WINDOW_KEEPRATIO)
hstack=np.hstack((mask2rgb,img,img1))
cv2.imshow("img",hstack)

save_img=cv2.resize(hstack,(int(hstack.shape[1]*0.25),int(hstack.shape[0]*0.25)))
cv2.imwrite("img.jpg",save_img)
cv2.namedWindow("img",)
cv2.waitKey(0)
cv2.destroyWindow("img")
# cv2.destroyAllWindows()

来源于网络的图:(侵删!)

处理后的效果:

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐