1

この機能を実現したい:rgb画像の平均値 (または合計) 値を計算します。より具体的には、イメージはタプルの 2 次元配列で構成されます。これが私のコードです:

rgb = [0.0, 0.0, 0.0]
for r in range(0, 3):
    for ii in range(x, x + X_STEP):
        for jj in range(y, y + Y_STEP):
            rgb[r] += src_pix[ii][jj][r]
rgb = map(lambda a: a / X_STEP / Y_STEP, rgb) #this line does not matter, it is just the difference between sum and average

質問それをきれいにする方法、またはよりPythonicにする方法は? たぶん、ネストされたmapものはまだ最善ではありません。を使っているようなものだといいのですがitertools

このリンクは、私の質問に近い解決策を提供します。別のリンクは私のコードの重複の可能性がありますが、彼は同じ質問をしていません。

どうもありがとう。

EDIT 私は実際にサブ2次元配列の合計を計算したいと考えています。

4

1 に答える 1

2

PILを使用しているようです。もしそうなら、これには numpy を使用します。

src_pixPIL バージョン >= 1.1.6 を使用していると仮定すると、次のように PIL オブジェクトを numpy 配列に変換できます。

np_pix = numpy.array(srx_pix)

次に、次を使用しますnumpy.sum

rgb = numpy.sum(np_pix)

または、平均を計算します(上記のコードと同様):

rgb = numpy.mean(np_pix)

古いバージョンの PIL では、numpy.asarray.

サブ配列の合計を計算したい場合は、次のようにスライスを使用してそのサブ配列を取得できます。

rgb_slice = numpy.mean(np_pix[X_start:X_end,Y_start:Y_end])

参考文献

于 2012-08-31T14:38:02.143 に答える