Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

09.04.2013, 12:05. Просмотров 660. Ответов 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++;
    }
    ////по окончанию жизни цикла получилось две группы
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 12:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия (алгоритм сжатия изображения методом Шеннон-Фано) (C++):

Алгоритм сжатия методом Шеннона-Фано - C++
Народ, нужна помощь в поиске кода реализующего алгоритм кодирования и декодирования сообщения методом Шеннона-Фано на Си. Заранее...

Шеннон-Фано - C++
Вопрос будет о методе сжатия изображения(bmp) методом Шеннона-Фано. Допустим я записываю значение, вероятность появления и битовый код в...

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

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

Алгоритм Шеннона-Фано - C++
Приветствую всех в этой теме. Создаю архиватор по методу Шеннона-Фано. И трудность возникла в программной реализации получения кодовых...

Алгоритм Шеннона-Фано - C++
Помогите, реализовать Алгоритм Шеннона-Фано на С ++, так чтобы мы вводили сроку из символов, а на выходе получали закодированную сроку из...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 12:05
Привет! Вот еще темы с ответами:

Алгоритм шеннона фано - C++
Помогите реализовать алгоритм шеннона фано, курсовую скоро сдавать, а у меня ничего не готово, очень нужна помощь!!!!

Реализовать алгоритм Шеннона-Фано - C++
есть ли кого-то алгоритм шеннона-фано на c++ или java ? нужен код

результат сжатия изображения. - C++
Черно-белое квадратное изображение размером 10 x 10 задано матрицей цветов отдельных пикселов. Придумать более компактный способ хранения...

Двоичный вывод (алгоритм Шеннона Фано) - C++
Здравствуйте! У меня вопрос по поводу реализации алгоритма Шеннона Фано. В соответствие с алгоритмом надо построить бинарное...


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

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

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