Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
#1

Рекурсия (алгоритм сжатия изображения методом Шеннон-Фано) - C++

09.04.2013, 12:05. Просмотров 646. Ответов 0
Метки нет (Все метки)

Мне задали реализовать алгоритм сжатия изображения методом Шеннон-Фано. Доступ к пикселям получил. Подсчитал сколько всего в моём изображение пикселей с определённым значением. Рассчитал вероятность. (+Всё это дело записал в массив структур. Для компоненты r из rgb понадобился всего массив структур с размерностью 8. Сначала хочу закодировать одну компоненту так как задачу нахрапом не решить.+)
Вот моя структура:
C++ (Qt)
1
2
3
4
5
6
struct pixel{
int znach;//значение пикселя оно целое от 0 до 255
float ver;//вероятность появления в файле
bitset<4> bit; //эта вещь для записи кода вида 100 или 01 и т.п.
};
struct pixel list[8];
Массив структур отсортировал в порядке убывания их вероятностей. Это всё проверил робит как надо.
Далее основное:
вот мне надо создать код для каждой структуры. Цикл очень тяжёлый. Первый проход я сделал согласно алгоритму. А далее надо же рассматривать каждую подгруппу, а их уже две. Потом ещё если было разбиение. Простым делением на две группы(без учёта вероятности) код будет равномерным. Смысла нет. Мне надо именно сделать так чтобы всё робило по - настоящему. Надеюсь подскажете как тут быть с рекурсией.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
float sumver = 0.0;
float delen = 1.0;
int ff1 = 0;//подсчёт итераций записи "1"
int ff2 = 0;//подсчёт итераций записи "0"
 
for(int i = 0; i < 8; i++)
{
    sumver += list[i].ver;
    if((sumver < 0.5)||(i == 0)){//второе условие для того чтобы для первого значения всё равно записалась 1 даже    //если P > 0,5
    list[i].bit = true;
    ff1++;
    }
    else
    {
      list[i].bit = false;
      ff2++;
    }
    ////по окончанию жизни цикла получилось две группы
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 12:05     Рекурсия (алгоритм сжатия изображения методом Шеннон-Фано)
Посмотрите здесь:

Шеннон-Фано - C++
Помогите пожалуйста, дали курсовую, неделю не могу сделать уже. В кратце: 1. Посчитать сколько раз встречается каждый символ в...

Шеннон-Фано, зацикливается программа - C++
В чем косяк? почему то зацикливается и все, хз даже что делать, перепробывал все :( #include &lt;iostream&gt; #include &lt;string&gt; using...

Алгоритм сжатия LZ - C++
Если у кого есть, поделитесь кодом, пожалуйста:-/

Алгоритм сжатия данных - C++
подскажите алгоритм сжатия данных, чтобы был не очень сложный и в то же время эффективный

Алгоритм сжатия PPM-D - C++
Может кто рассказать о алгоритме сжатия PPM-D и как его реализовать или покидайте ссылки, литературу какую то (Гугл не предлагать, искал,...

Фрактальный алгоритм сжатия картинок - C++
интересует реализация фрактального алгоритма на си или си ++.

Рекурсия (алгоритм подсчета числа способов, с помощью которых можно представить число М в виде суммы) - C++
Нужно написать рекурсивный алгоритм подсчета числа способов, с помощью которых можно представить число М в виде суммы, каждое слагаемое...

Отслеживающий алгоритм нахождения контура изображения - C++
Есть некоторое BMP изображение, фоновым цветом которого является белый цвет. На нём черным цветом изображен некоторый объект, например...

Реализовать алгоритм сортировка методом парных перестановок - C++
1. Реализовать алгоритм сортировка методом парных перестановок. 2. Задана матрица размером N×M, N,M&lt;50. Получить массив B, присвоив...

Параллельный алгоритм, решенный методом Гаусса-Зейделя - C++
Всем привет.;)Нашла в инете текст программы, кот. мне нужна.Написана она на С++(параллельный алгоритм решенный методом...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru