将PNG图像覆盖到另外一张图像上
参考下述链接,将PNG图像覆盖到另外一张图片上时,代码运行效果与文章描述不一致:
https://blog.csdn.net/qq_55621259/article/details/125269490
需要进行如下修改:
原代码为
import cv2
img1 = cv2.imread(r'D:\Pycharm\learn_opencv\pic\ants_image\0013035.jpg')
img2 = cv2.imread('D:\Pycharm\learn_opencv\pic\logo.jfif')
rows,cols,channels = img2.shape
roi = img1[0:rows, 0:cols]
img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 200, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)
img1_bg = cv2.bitwise_and(roi,roi,mask = mask)
img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv)
dst = cv2.add(img1_bg,img2_fg)
img1[0:rows, 0:cols ] = dst
cv2.imshow('sasa',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
修改:
ret, mask = cv2.threshold(img2gray, 0, 255, cv2.THRESH_BINARY_INV)