使用 Python OpenCV 去除黑色背景并使其透明

本文详细介绍了如何使用Python的OpenCV库,通过cv2.cvtColor和相关函数,如cv2.threshold、cv2.split和cv2.merge,来实现去除图像黑色背景并使其透明的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本文中,我们将讨论如何在 python opencv中去除黑色背景并使其透明。

cv2.cvtColor() 方法用于将图像从一种颜色空间转换为另一种颜色空间。 OpenCV 中有 150 多种色彩空间转换方法。

语法:cv2.cvtColor(src, code[, dst[, dstCn]])

参数:

  • src:图片
  • code:颜色空间转换码。
  • dst:(可选),与src图像大小和深度相同的输出图像。
  • dstCn:(可选),它是目标图像中的通道数

返回值:返回一张图片。

用于演示的图片:

逐步实施:

第一步:首先,导入OpenCV库。

import cv2

第 2 步:现在,从您的计算机导入图像。

file_name = "#Image-Location"

第 3 步:然后,在 OpenCV 中读取图像。

src = cv2.imread(file_name, 1)

第 4 步:然后,将图像背景转换为灰色图像背景。

tmp = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)

第 5 步:此外,应用阈值技术。

_,alpha = cv2.threshold(tmp,0,255,cv2.THRESH_BINARY)

步骤 6:进一步,使用 cv2.split() 分割彩色图像的通道。

b, g, r = cv2.split(src)

第 7 步:稍后,列出红色、绿色和蓝色通道以及 alpha。

rgba = [b,g,r, alpha]

第 8 步:接下来,使用 cv2.merge() 将 rgba 合并为彩色/多通道图像。

dst = cv2.merge(rgba,4)

第 9 步:最后,写入并保存到新的图像位置。

cv2.imwrite("#New-Image-Location", dst)

下面是完整的实现:

Python3实现

# Import the library OpenCV

import cv2

  # Import the image

file_name = "gfg_black.png"

  # Read the image

src = cv2.imread(file_name, 1)

  # Convert image to image gray

tmp = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)

  # Applying thresholding technique

_, alpha = cv2.threshold(tmp, 0, 255, cv2.THRESH_BINARY)

  # Using cv2.split() to split channels 

# of coloured image

b, g, r = cv2.split(src)

  # Making list of Red, Green, Blue

# Channels and alpha

rgba = [b, g, r, alpha]

  # Using cv2.merge() to merge rgba

# into a coloured/multi-channeled image

dst = cv2.merge(rgba, 4)

  # Writing and saving to a new image

cv2.imwrite("gfg_white.png", dst)
 

输出:

Removing black background and make transparent in python opencv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值