2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python --将绿幕图片抠成透明背景图片

时间:08-15来源:作者:点击数:31

该代码段展示了如何利用OpenCV库将含有绿幕的图片转换成具有透明背景的PNG图片。通过色彩空间转换(HSV),定义绿色范围,创建掩码,然后进行按位运算来分离和提取绿幕部分,最终保存为带Alpha通道的图像。

  • def get_none_img(img):
  • """
  • 将绿幕图片抠成透明背景图片
  • :return:
  • """
  • # todo 读取并转换图片格式
  • _, ext = os.path.splitext(img)
  • opencv = cv2.imread(os.path.join(IMAGES_ABS_PATH, img))
  • hsv = cv2.cvtColor(opencv, cv2.COLOR_RGB2HSV)
  • # todo 指定绿色范围,60表示绿色,我取的范围是-+10
  • minGreen = np.array([30, 70, 70])
  • maxGreen = np.array([80, 255, 255])
  • # todo 确定绿色范围
  • mask = cv2.inRange(hsv, minGreen, maxGreen)
  • # todo 确定非绿色范围
  • mask_not = cv2.bitwise_not(mask)
  • # todo 通过掩码控制的按位与运算锁定绿色区域
  • green = cv2.bitwise_and(opencv, opencv, mask=mask)
  • # todo 通过掩码控制的按位与运算锁定非绿色区域
  • green_not = cv2.bitwise_and(opencv, opencv, mask=mask_not)
  • # todo 拆分为3通道
  • b, g, r = cv2.split(green_not)
  • # todo 合成四通道
  • bgra = cv2.merge([b, g, r, mask_not])
  • # todo 保存带有透明通道的png图片,有了这种素材之后,就可以给这张图片替换任意背景了
  • cv2.imwrite(f'./caches/image1/{_}.png', bgra)
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐