0 / 0 / 0
Регистрация: 05.12.2019
Сообщений: 43
1

Сжатие jpeg

15.12.2020, 12:32. Показов 1157. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте
При осуществлении мной алгоритма сжатие картинки формата jpeg, после этапа ДКП и квантования картинка начинает зеленить.
Вот так: https://sun9-16.userapi.com/im... type=album
С чем может быть это связано?
Вот функция: (subdes1 - массив с уже субдескритезированными данными)
Python
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
31
32
33
34
def cosANDconv(w, q, countW, countQ, i, r, e, listy=None, listcb=None, listcr=None):
    if listcr is None:
        listcr = [[] for i in range(8)]
    if listcb is None:
        listcb = [[] for i in range(8)]
    if listy is None:
        listy = [[] for i in range(8)]
 
    while w < countW:
        listy[i].append(subdes1[q, w, 0])
        listcb[i].append(subdes1[q, w, 1])
        listcr[i].append(subdes1[q, w, 2])
        w += 1
        if w == countW:
            q += 1
            w = countW - 8
            i += 1
        if q == countQ:
            listy = np.array((dct(dct(np.array(listy).T, norm='ortho').T, norm='ortho' ))/yarc) #Здесь уже 2D массив после ДКП и кватования
            listcb = np.array((dct(dct(np.array(listcb).T, norm='ortho').T, norm='ortho' ))/color)
            listcr = np.array((dct(dct(np.array(listcr).T, norm='ortho').T, norm='ortho' ))/color)
            listy = np.rint(idct(idct(np.array(listy).T, norm='ortho').T, norm='ortho'))
            listcb = np.rint(idct(idct(np.array(listcb).T, norm='ortho').T, norm='ortho'))
            listcr = np.rint(idct(idct(np.array(listcr).T, norm='ortho').T, norm='ortho'))
            res = list(map(lambda x, y, z: list(map(lambda ax, ay, az: [ax, ay, az], x, y, z)), listy, listcb, listcr))#Соеденяю 3 массива в 1
            result[r] += res[e]
            result[r+1] += res[e+1]
            result[r+2] += res[e+2]
            result[r+3] += res[e+3]
            result[r+4] += res[e+4]
            result[r+5] += res[e+5]
            result[r+6] += res[e+6]
            result[r+7] += res[e+7]
            break
Мои матрицы квантования:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
yarc= np.array([
[16, 11, 10, 16, 24, 40, 51, 61],
[12, 12, 14, 19, 26, 58, 60, 55],
[14, 13, 16, 24, 40, 57, 69, 56],
[14, 17, 22, 29, 51, 87, 80, 62],
[18, 22, 37, 56, 68, 109, 103, 77],
[24, 35, 55, 64, 81, 104, 113, 92],
[49, 64, 78, 87, 103, 121, 120, 101],
[72, 92, 95, 98, 112, 100, 103, 99]
])
# Матрица квантования цвета
color = np.array([
[17, 18, 24, 47, 99, 99, 99, 99],
[18, 21, 26, 66, 99, 99, 99, 99],
[24, 26, 56, 99, 99, 99, 99, 99],
[47, 66, 99, 99, 99, 99, 99, 99],
[99, 99, 99, 99, 99, 99, 99, 99],
[99, 99, 99, 99, 99, 99, 99, 99],
[99, 99, 99, 99, 99, 99, 99, 99],
[99, 99, 99, 99, 99, 99, 99, 99]
])
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2020, 12:32
Ответы с готовыми решениями:

Как преобразовать битмапу в байты для записи в файл jpeg?
Записывать что-то в файл я не собираюсь, мне нужно в метод scale_with_quality класса TurboJPEG...

Что за цифры внутри jpeg-файла?
Доброго времени суток....тренировался читать файлы, jpeg..... file =...

Сжатие строки
# 3 функции нужны для стандартизации программ потом (буду использовать в других программах) def...

Сжатие текста
Добрейшего вечера всем) Задача: сшить N-ое количество строк так, чтобы в выходной строке...

Сжатие строки
Питон изучаю не так давно, сейчас прохожу один курс, столкнулся с таким заданием, где нужно сжать...

0
15.12.2020, 12:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2020, 12:32
Помогаю со студенческими работами здесь

Сжатие целочисленного массива
Добрый день! Нужна помощь с заданием: Сжать целочисленный массив, чтобы печатал другой массив с...

Сжатие с добавлением скобок
Смысл задания: написать программу, которая будет &quot;сжимать&quot; одинаковые символы на местах,...

Сжатие символьного файла
Символьный файл содержит пробелы. Необходимо сжать этот файл (убрать пробелы) Вроде простая...

Задача на сжатие строки
Добрый день, подскажите пожалуйста, как можно наиболее проще и наименьшим кодом решить данную...

Сжатие данных на Python
Добрый вечер. У меня в проекте есть несколько файлов с разными расширениями и разными форматами...

Сжатие большой строки в маленькую
Всем привет. Помогите, пожалуйста, решить следующую задачу: Дано: Есть одна сравнительно крупная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru