一、掩膜 (Mask)
掩膜是用选定的图像、图形或物体,对要处理的图像进行遮挡,来控制图像 处理的区域
二、阈值 (Threshold)
设定的阈值,将灰度图像转换为二值图像
三、流程图
四、代码,结果
import cv2
Dog = cv2.imread ('C:/Users/64679/Desktop/1.JPG')
CVlogo = cv2.imread ('C:/Users/64679/Desktop/2.JPG')
CVlogoGray = cv2.cvtColor (CVlogo, cv2.COLOR_BGR2GRAY) # 先将CVlogo转化为灰度图像
Dog = cv2.resize (Dog, (320, 240))
CVlogo = cv2.resize (CVlogo, (320, 240))
CVlogoGray = cv2.resize (CVlogoGray, (320, 240))
ret, BGMask = cv2.threshold (CVlogoGray, 200, 255,
cv2.THRESH_BINARY) # 将灰度图CVlogoGray中灰度值小于50的点置0,灰度值大于175的点置255(ret:阈值,BGMask:二值化的图像)
BG = cv2.bitwise_and (Dog, Dog, BGMask, mask=BGMask) # 背景
FGMask = cv2.bitwise_not (BGMask) # 前景Mask
FG = cv2.bitwise_and (CVlogo, CVlogo, FGMask, mask=FGMask) # 前景
FGMask=cv2.cvtColor(FGMask,cv2.COLOR_GRAY2BGR)
Final =cv2.add(Dog,FGMask)
cv2.imshow ('dog', Dog)
cv2.imshow ('CVlogo', CVlogo)
cv2.imshow ('CVlogoGray', CVlogoGray)
cv2.imshow ('CVlogoMask', BGMask)
cv2.imshow ('BG', BG)
cv2.imshow ('FGMask', FGMask)
cv2.imshow ('FG', FG)
cv2.imshow('Final',Final)
cv2.moveWindow ('dog', 0, 0)
cv2.moveWindow ('CVlogo', 0, 280)
cv2.moveWindow ('CVlogoGray', 350, 0)
cv2.moveWindow ('CVlogoMask', 350, 280)
cv2.moveWindow ('BG', 700, 0)
cv2.moveWindow ('FGMask', 700, 280)
cv2.moveWindow ('FG', 1050, 0)
cv2.moveWindow ('Final', 1050, 280)
cv2.waitKey (0)
cv2.destroyAllWindows ()