示例#1
0
        if it == 0:
            codebooks = np.array(
                [Codebook() for pixel in range(img.shape[0] * img.shape[1])])

        for px_row in img:
            for px_idx, px in enumerate(px_row):

                R = px[0]
                G = px[1]
                B = px[2]
                X = np.array([R, G, B])
                I = sqrt(R**2 + G**2 + B**2)
                pixel = Pixel(X, I)

                codebook_empty = True
                no_match = True

                for codeword in codebooks[px_idx].codewords:
                    codebook_empty = False

                    if pixel.match(codeword, alpha, beta, epsilon):
                        codeword.update(pixel, it)
                        no_match = False

                        break

                if codebook_empty or no_match:
                    A = np.array([pixel.I, pixel.I, 1, it, it + 1, it + 1])
                    new_codeword = Codeword(pixel.X, A)
                    codebooks[px_idx].codewords.append(new_codeword)