本文实例为大家分享了Opencv实现抠图替换背景图的具体代码,供大家参考,具体内容如下
下面简单图片演示一下:
提取面具:
python的opencv代码如下:
#=utf - 8编码 进口cv2 进口numpy np img=cv2.imread (“lp.jpg”) img_back=cv2.imread (“back.jpg”) #日常缩放 行、关口=img_back.shape渠道 img_back=cv2.resize (img_back, fx=0.7,=0.7)财政年度 cv2.imshow (img_back, img_back) 行、关口=img.shape渠道 img=cv2.resize (img, fx=0.4,=0.4)财政年度 cv2.imshow (img, img) 行,关口,渠道=img.shape #行,关口最后一定要是前景图片的,后面遍历图片需要用的到 #转换hsv cv2.COLOR_BGR2HSV hsv=cv2.cvtColor (img) #获取面具 lower_blue=np.array([78年,43岁,46]) upper_blue=np.array ([110255255]) 掩码=cv2。inRange (hsv lower_blue upper_blue) cv2。imshow(面具,面具) #腐蚀膨胀 侵蚀=cv2.erode(面具,没有,迭代=1) cv2.imshow(“侵蚀”,侵蚀) 扩张=cv2.dilate(侵蚀、没有一个、迭代=1) cv2.imshow(扩张,扩张) #遍历替换 中心=(50,50)#在新背景图片中的位置 因为我在范围内(行): j的范围(峡路): 如果扩张(i, j)==0: # 0代表黑色的点 img_back [[0] + i中心,中心[1]+ j]=img (i, j) #此处替换颜色,为BGR通道 cv2.imshow (res, img_back) cv2.waitKey (0) cv2.destroyAllWindows ()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。