作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有多张图片,每张图片都有一个删除背景的对象。图片大小为 500x400 像素。
我正在寻找一种以编程方式(最好使用python)计算图片内图像(没有背景的空间内)的像素总数的方法。
我使用Python中的PIL包来获取图像对象的尺寸,如下:
print(image.size)
最佳答案
您可以使用图像中不存在的某种颜色来填充背景像素,例如品红色,然后计算品红色像素并从图像中的像素数(宽度 x 高度)中减去该数字。
下面是一个例子:
#!/usr/bin/env python3
from PIL import Image, ImageDraw
import numpy as np
# Open the image and ensure RGB
im = Image.open('man.png').convert('RGB')
# Make all background pixels magenta
ImageDraw.floodfill(im,xy=(0,0),value=(255,0,255),thresh=50)
# Save for checking
im.save('floodfilled.png')
# Make into Numpy array
n = np.array(im)
# Mask of magenta background pixels
bgMask =(n[:, :, 0:3] == [255,0,255]).all(2)
count = np.count_nonzero(bgMask)
# Report results
print(f"Background pixels: {count} of {im.width*im.height} total")
Background pixels: 148259 of 199600 total
关于python-3.x - 如何以编程方式(最好在 python 中使用 PIL)计算具有剥离背景的对象的总像素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58250682/
我是一名优秀的程序员,十分优秀!