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

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

Suggested prompts:

Сумаризуйте цей розділ

Пояснити код у file

Пояснити, чому file не вирішує завдання

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