File size: 888 Bytes
4e78e8c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from sklearn.decomposition import PCA
import numpy as np


def pca_for_rgb(img, n_components):
    red = img[:, :, 0]
    green = img[:, :, 1]
    blue = img[:, :, 2]

    try:
        pca = PCA(n_components=n_components)

        red_transformed = pca.fit_transform(red)
        red_inverted = pca.inverse_transform(red_transformed)

        green_transformed = pca.fit_transform(green)
        green_inverted = pca.inverse_transform(green_transformed)

        blue_transformed = pca.fit_transform(blue)
        blue_inverted = pca.inverse_transform(blue_transformed)
        img_compressed = (
            np.dstack(
                (red_inverted,
                 green_inverted,
                 blue_inverted))).astype(
            np.uint8)
        return img_compressed
    except BaseException:
        print("Kindly put valid number of components")