簡體   English   中英

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

[英]how to find occurrences of elements in a list of list in 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。

我嘗試了周期和.count方法。

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

他們不工作,我不明白為什么。 你可以幫幫我嗎?

非常感謝

賈科莫

您可以使用sum

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

pixel_frequency(255, pixelmatrix)
# 137 (or something)
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)

編輯:刪除了代碼段中的多余步驟,並添加了打印語句。

假設您正在談論列表的實際列表(您的帖子中缺少一些逗號,這就是我這么說的原因),然后嘗試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM