1

ここにあるヒートマップモジュールを使用して拡張することを検討しています: http://jjguy.com/heatmap/。私のpythonの知識と経験は限られていますが、この方法がどのように機能するかについて混乱しています:

def _colorize(self, img, size, colors):
    """ use the colorscheme selected to color the 
        image densities  """
    w,h = img.size
    imgnew = Image.new('RGBA', size, (255, 255, 255, 0))
    imgpix = img.load()
    imgnewpix = imgnew.load()
    for x in xrange(w):
        for y in xrange(h):
            pix = imgpix[x,y]
            if isinstance(pix, (list, tuple)):
                pix = pix[3]
            rgba = list(colors[pix])
            if pix <= 254: 
                alpha = self.opacity
                rgba.append(alpha)
            else:
                rgba = (255, 255, 255, 0)

            imgnewpix[x,y] = tuple(rgba)
    return imgnew

より具体的には、私は理由を理解していません

pix = imgpix[x,y]

有用なオブジェクトではなく、255 などの数値を返します。pix int が数行の配列を参照するために使用されていることは知っていますが、そのビットは理解していますが、pix int がどこから来ているのか本当にわかりませんか?

明らかに位置x、yの値ですが、その値は何ですか...私のドリフトをキャッチした場合:)

4

1 に答える 1

0

画像モードに応じて、添字操作は単一の数値、タプル、または 3 つまたは 4 つの数値のリストを返します。単一の数値は、グレー値 (モード 'L' の場合) またはパレット インデックス (モード 'P' の場合) のいずれかです。複数の数値が返される場合、それらは赤、緑、青、およびオプションでアルファ (透明度) の値を表します。それぞれは 0 ~ 255 の数値で、0 が黒、255 がその色の最大強度です。

于 2012-11-25T02:05:11.743 に答える