#将一张图片的背景移到另一张图片上 def re_2_bg(img1, img2, newname="new.jpg"): img1 = cv2.imread(img1) img2 = cv2.imread(img2) h, w = img2.shape[0], img2.shape[1] # 图片高、宽 print(h, w) img1 = cv2.resize(img1, (w, h)) for row in range(h): for col in range(w): (b, g, r) = img1[row, col] if b >= 219: # 如果b通道值大于219(蓝色),就将该点替换;注意,此值须得试验,经过多次实验才能确定哪个值最好。 img1[row, col] = img2[row, col] cv2.imwrite(newname, img1) # 将图片保存 测试代码: img1 = "./imgs/wang.jpeg"#图片路径 img2 = "./imgs/fbb.jpg" re_2_bg(img1, img2) 原来的两张图为: 代码运行后的图为: 注:本文图片均从网上下载。 最后更改后的图片效果不是很理想,原因可能是我这两张图片找得不太好,对wang这幅图片进行了拉伸,然后图片的前景和背景色对比不是特别明显,但是最后的图片很明显是改过了的。 如果选择同一个人,只是背景不一样,效果会更好些。 |
|
来自: pythonjava学习 > 《待分类》