我们在看电影的时候会发现许多很震撼的特效,而在拍摄这些特效时,他们都在一个很大的绿幕中进行,接下来我们来将绿幕的图像进行抠图操作!It is amazing!~

import cv2

image = cv2.imread("images/green_screen.jpg")
cv2.imshow("input",image)
    
# 将图片BGR转化为HSV进行处理
hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)

# 计算图像绿值的范围,则除了图像人物以外,其他均为白色255,图像人物为黑色0
mask = cv2.inRange(hsv,(35,43,46),(77,255,255))

# 将图像进行取反操作,则图像人物为白色255,其他为黑色0
cv2.bitwise_not(mask,mask)

# 将原图和取反后的图在mask区域内进行与操作,则保留人物,其他为黑色,因此将人物抠出来了!
result = cv2.bitwise_and(image,image,mask=mask)

cv2.imshow("mask",mask)
cv2.imshow("result",result)

cv2.waitKey(0)
cv2.destroyAllWindows()

python cv2绿幕抠图 绿幕抠图算法_opencv

 

上图!

python cv2绿幕抠图 绿幕抠图算法_抠图_02