gpt4 book ai didi

python-3.x - 如何以编程方式(最好在 python 中使用 PIL)计算具有剥离背景的对象的总像素数?

转载 作者:行者123 更新时间:2023-12-04 01:14:59 24 4
gpt4 key购买 nike

我有多张图片,每张图片都有一个删除背景的对象。图片大小为 500x400 像素。

我正在寻找一种以编程方式(最好使用python)计算图片内图像(没有背景的空间内)的像素总数的方法。

我使用Python中的PIL包来获取图像对象的尺寸,如下:

print(image.size)

此命令成功生成了整个图片的尺寸(500x400 像素),但未生成图片内感兴趣对象的尺寸。

有谁知道如何使用python计算图片内对象的尺寸?下面嵌入了一个图片示例。

Picture

最佳答案

您可以使用图像中不存在的某种颜色来填充背景像素,例如品红色,然后计算品红色像素并从图像中的像素数(宽度 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

enter image description here

不确定 ARM 和 body 之间的封闭区域对您有多重要……如果您只替换所有灰色而不使用填充技术,则您可能会冒着制作品红色衬衫并将其计为背景的风险。

关于python-3.x - 如何以编程方式(最好在 python 中使用 PIL)计算具有剥离背景的对象的总像素数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58250682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com