如何在python中查找列表中的元素

2024-10-02 02:32:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始学习python。你知道吗

我将一个图像转换成一个灰色像素矩阵(0=黑色,255=白色)

from PIL import Image
import numpy
import array

im = Image.open("elephant.jpg")                 
grayim = im.convert('L')                        

pixelmatrix = numpy.asarray(grayim)   

如果我

print pixelmatrix

我得到的结果是:

pixelmatrix = [154 154 154 ..., 169 169 169]
              [153 153 153 ..., 166 166 166]
              [153 153 153 ..., 161 161 161]
              ..., 
              [151 130 107 ...,  51  85  75]
              [130 133 111 ...,  86  92  56]
              [ 91 127 119 ..., 102 139  66]]

这就是我要找的。好的

我要做的是计算一个值的出现率,比如255。你知道吗

我试过循环和计数法。你知道吗

for x in range(0, lastrow):
    for y in range(0, lastcolumn):
        print sum(pixelmatrix[x,y] 

他们不工作,我不明白为什么。你能帮我吗?你知道吗

多谢了 再见

贾科莫


Tags: in图像imageimportnumpyforrange矩阵
3条回答
from PIL import Image
import numpy
import array

im = Image.open("elephant.jpg")                 
grayim = im.convert('L')                        

pixelmatrix = numpy.asarray(grayim)

no_occurrences = numpy.sum(pixelmatrix==255)
print(no_occurrences)

编辑:删除了代码段中的多余步骤,并添加了print语句。你知道吗

您可以使用sum。你知道吗

def pixel_frequency(value, image):
    return (image == value).sum()

pixel_frequency(255, pixelmatrix)
# 137 (or something)

假设您正在谈论一个实际的列表列表(您的帖子中缺少一些逗号,这就是我这么说的原因),那么请尝试:

numOccurrences = sum([row.count(255) for row in pixelmatrix])

相关问题 更多 >

    热门问题