Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Стиснення зображень | Аналіз результатів
Метод Головних Компонент

bookСтиснення зображень

Переходимо до останнього завдання, яке може вирішити PCA - це стиснення зображення. Рішення даної задачі відбувається за тим же алгоритмом, що і зазвичай. Ми вже знаємо, як створювати моделі PCA та завантажувати в них дані. Тому зараз ми заглибимося в інші деталі. Стиснення чорно-білих і кольорових зображень здійснюється по-різному. Стиснення чорно-білих зображень нічим не відрізняється від стиснення звичайних. У той час як для кольорових зображень потрібно: розділити зображення на 3 кольорові канали RGB, зменшити розмірність кожного каналу за допомогою PCA, а потім об’єднати канали в повноцінне кольорове зображення. Щоб прочитати зображення та розділити їх на канали RGB, нам потрібні бібліотеки matplotlib і cv2:

import matplotlib.pyplot as plt
import cv2

img = plt.imread('test.jpg')
b, g, r = cv2.split(RGB_img)

Стандартизуємо дані. Ми можемо реалізувати це простіше, не використовуючи бібліотеку, а лише за допомогою поділу:

r_scaled = r / 255
g_scaled = g / 255
b_scaled = b / 255

Тепер створимо 3 моделі PCA:

from sklearn.decomposition import PCA

pca_r = PCA(n_components=50)
pca_r_trans = pca_r.fit_transform(r_scaled)

pca_g = PCA(n_components=50)
pca_g_trans = pca_g.fit_transform(g_scaled)

pca_b = PCA(n_components=50)
pca_b_trans = pca_b.fit_transform(b_scaled)

Тепер ми можемо об'єднати отримані дані в одне зображення:

pca_r_org = pca_r.inverse_transform(pca_r_trans)
pca_g_org = pca_g.inverse_transform(pca_g_trans)
pca_b_org = pca_b.inverse_transform(pca_b_trans)

img_compressed = cv2.merge((pca_b_org, pca_g_org, pca_r_org))
Завдання

Swipe to start coding

Зменшити розмірність чорно-білого зображення до 40 компонентів.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 5.26

bookСтиснення зображень

Свайпніть щоб показати меню

Переходимо до останнього завдання, яке може вирішити PCA - це стиснення зображення. Рішення даної задачі відбувається за тим же алгоритмом, що і зазвичай. Ми вже знаємо, як створювати моделі PCA та завантажувати в них дані. Тому зараз ми заглибимося в інші деталі. Стиснення чорно-білих і кольорових зображень здійснюється по-різному. Стиснення чорно-білих зображень нічим не відрізняється від стиснення звичайних. У той час як для кольорових зображень потрібно: розділити зображення на 3 кольорові канали RGB, зменшити розмірність кожного каналу за допомогою PCA, а потім об’єднати канали в повноцінне кольорове зображення. Щоб прочитати зображення та розділити їх на канали RGB, нам потрібні бібліотеки matplotlib і cv2:

import matplotlib.pyplot as plt
import cv2

img = plt.imread('test.jpg')
b, g, r = cv2.split(RGB_img)

Стандартизуємо дані. Ми можемо реалізувати це простіше, не використовуючи бібліотеку, а лише за допомогою поділу:

r_scaled = r / 255
g_scaled = g / 255
b_scaled = b / 255

Тепер створимо 3 моделі PCA:

from sklearn.decomposition import PCA

pca_r = PCA(n_components=50)
pca_r_trans = pca_r.fit_transform(r_scaled)

pca_g = PCA(n_components=50)
pca_g_trans = pca_g.fit_transform(g_scaled)

pca_b = PCA(n_components=50)
pca_b_trans = pca_b.fit_transform(b_scaled)

Тепер ми можемо об'єднати отримані дані в одне зображення:

pca_r_org = pca_r.inverse_transform(pca_r_trans)
pca_g_org = pca_g.inverse_transform(pca_g_trans)
pca_b_org = pca_b.inverse_transform(pca_b_trans)

img_compressed = cv2.merge((pca_b_org, pca_g_org, pca_r_org))
Завдання

Swipe to start coding

Зменшити розмірність чорно-білого зображення до 40 компонентів.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

close

Awesome!

Completion rate improved to 5.26
Секція 4. Розділ 5
single

single

some-alt