去掉图片的背景python
时间: 2023-06-29 09:10:18 浏览: 50
可以使用Python中的图像处理库Pillow和OpenCV来去掉图片的背景。
使用Pillow库:
```python
from PIL import Image
# 打开图片
img = Image.open("image.jpg")
# 转换为RGBA模式
img = img.convert("RGBA")
# 获取图片像素数据
pixdata = img.load()
# 遍历像素点
for y in range(img.size[1]):
for x in range(img.size[0]):
# 获取像素点的RGBA值
r, g, b, a = pixdata[x, y]
# 如果该像素点的透明度小于100,将其改为透明的
if a < 100:
pixdata[x, y] = (255, 255, 255, 0)
# 保存图片
img.save("output.png")
```
使用OpenCV库:
```python
import cv2
# 打开图片
img = cv2.imread("image.jpg")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 将灰度图像转换为二值图像
ret, mask = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
# 进行形态学操作,去除噪点
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
# 将背景变为白色
img[mask == 0] = [255, 255, 255]
# 保存图片
cv2.imwrite("output.png", img)
```