Главная » Просмотр файлов » Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006)

Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 58

Файл №1246139 Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006)) 58 страницаГонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139) страница 582021-01-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 58)

'/ 'сойе' сопса1пз воигсе вушЬо1 зсг1пяв соггезропй1пя Со '11пЬ' Х пойев, вЬ11е '11пЬ' сопСа1пв СЬе аййтеввев (+) Со лойе ра1гв 1ог '/ лойе вушЬо1 вСг1пяв р1ив '0' апй ' 1' ог аййгеззев (-) Со йесойей '/ Нит(шап сойевогйв 1п 'шар'. Аттау '1е1С' 1в а 11вС о1 пойев уеС Со Х Ье ргосеввей уог '11п)с' епСг1ез.

сойе = се11втт(сЬаг(>, '0', '1')); '/ Яет всагС1пя сопй1САопв ав 11п1с = [2; 0; 0); 1еуС = [2 3); Х 3 пойев в/2 ипргосеззей 1оипй = 0; Со11пй = 1епкСЬ(шар); Х ТтасМпя эатйаЬ1ез вй11е 1епкСЬ(1е1С) А (уоипй ( Со11пй) 1ооЬ = 11пй(вттсшр(шар, сойе(1е1С(1)))); '/ 1в зСг1пя 1п шар? 11 1ооЬ / Уез 11пЬ(1е1С(1)) = -1оо)с; '/ Ро1пС Со Ниттшап шар 1е1С = 1е1С (2: епй); Х Ое1есе сиггепС лойе Хоипй = 1оипй + 1; '/ 1псгешепС сойев уоипй е1ве '/ Мо, айй 2 пойев А ро1псегв 1еп = 1епясЬ(сойе); '/ Рит ройптегв 1п лойе 11п)с(1е1С(1)) = 1еп + 1; 11п)с = [11п)с; О; 01; Х Айй ипртосеввей пойев сойе(епй + 1г = зтгсаС(сойе(1е1С(1)т, '0'); сойе(епй + 1т = зггсаС(сойе(1еуС(1)т, '1'); 1е1С = 1е1С(2:епй); '/ Нешоче ргосеввей лойе 1еХС = [1е1С 1еп + 1 1еп + 2); Х Айй 2 ипргосеввей пойев еш1 епй х = иптаче1(у.сойе', 11пЬ, ш е п); х = х + хш1п — 1; х = гевЬаре(х, ш, и); '/ Оесойе из1пк С 'иптаие1' '/ Х шгп1шшв оттвеС ай)ивС Х Иа1се иессог ап аггау Как уже отмечалось ранее, декодирование Ьитт2шаС основано на сериях операций двоичного поиска с двумя исходящими решениями декодирования.

Каждый элемент последовательно просматриваемой строки символов, закодированной по Хаффману (т.е. О или 1), переключает двоичное решение декодирования, основанное на таблице переходов и выходов 11п1с. Построение 11п1с начинается ее инициализацией командой 11п1с = [2; 0; ОЕ Каждый элемент исходного массива 11п)с, состоящего из трех элементов, соответствует закодированной двоичной последовательности в смешанном массиве сойе. В начале сойе = = се11вСг(сЬаг(>, '0', '1')). Пустая строка сойе(1) является исходной точкой (начальным состоянием) любого декодирования Хаффмана. Ассоциированное число 2 в 11п1с(1) обозначает два возможных состояния декодирования, которые следуют задобавлением к нулевой строке '0' или '1'.

Если следующий закодированный бит равен '0', то следующее состояние декодирования есть 11п1с(2) (поскольку сойе(2) = '0' нулевая строка соединяется с '0'); если этот бит равен ' 1 ', то новое состояние будет 11п)с(3) [с индексом (2+ 1) или 3, со значением '(ч 3! 8 Глава В. Сжагаие изображений сойе (3) = ' 1 ']. Обратите внимание на то, что соответствующие значения в 11п1с равны О. Это означает, что они еще не были обработаны для получения подходящих решений для кода Хаффмана шар.

При построении 11п1с, если в шар найдена строка (т. е. '0' или ' 1', что означает настоящее кодовое слово), то соответствующий 0 в 11ц1с заменяется на соответствующий индекс шар со знаком минус (зто декодированная величина). В противном случае новый (положительный) иццекс шар вставляется по указателю на два новые состояния (возможные кодовые слова Хаффмана) в логической последовательности (или '00' и '01', или '10' и '11'). Эти новые и еще не обработанные элементы 1пйс увеличивают размер 11гйс (смешанный массив соое также необходимо обновить), после чего процесс построения продолжается до тех пор, пока в 11п1с остаются необработанные элементы. Вместо того, чтобы непрерывно сканировать 11гйс на предмет необработанных элементов, функция )гц112шас строит массив отслеживания с именем 1е11, который в начале процесса равен [2, 3], и каждый раз обновляет его, чтобы в нем находились индексы неисследованных элементов 1пйс.

Таблица 8.3. Таблица декодирования смешанного массива редуцированного источника на рис. 8.3 В табл. 8.3 показана таблица 11п)с, которая строится для кода Хаффмана из примера 8.2. Если каждый индекс 11п)с рассматривать в качестве состояния декодирования 1, то каждое двоичное решение кодирования (при просмотре кодовой последовательности слева направо) и/или выход декодера Хаффмана определяется по 11п1с(1) по следующим правилам: 1.

Если 1пйс(1) ( 0 (отрицательно), то кодовое слово Хаффмана уже было продекодировано. Выход декодера есть |11пк(1)), где ~ ~ обозначает абсолютную величину. 2. Если 11п)с(1) > 0 (положительно), и следующий обрабатываемый бит равен О, то следующее состояние декодирования — это индекс 1пйс(1), т.е. мы полагаем 1 = 1гп1с01). 3. Если 11п)с(1) > 0 и следующий обрабатываемый бит равен 1, то следующее состояние декодирования — это индекс 11п1с01) + 1, т. е. мы полагаем 1 = 11п1с(1) + 1. Как ранее отмечалось, положительные компоненты 11пк соответствуют двоичным переходам декодирования, а отрицательные компоненты определяют продекодированные выходные значения.

После декодирования каждого кодового слова Хаффмана начинается новый двоичный поиск с индексом 11п1с равным 1 = 1. При декодировании строки 101010110101... из примера 8.2 последовательность .б.бд б ЗД состояний переходов: 5. = 1, 3, 1, 2, 5„6, 1, ...;асоответствующаяпоследовательность выходов: —, ~-2), —, —, -, ~-3~, — ..., где знак '-' обозначает отсутствие выхода. Декодированные выходные значения 2 и 3 являются первыми двумя пикселами из первого столбца тестового изображения 12 в примера 8.2. С-функция ппгане1 принимает описанную выше структуру 11пк и использует ее в процедуре двоичного поиска, нужного для декодирования входа Ьх.

Блоксхема на рис. 8.5 отображает основные действия ипгабге1, которые производятся в процессе принятия решений, которые объяснялись вместе с табл. 8.3. Отметим, что при написании программы на С потребовалось вносить некоторые поправки, связанные с тем, что индексы массивов в С начинаются с О, а не с 1. Рис. 8.5. Блок-схема С-функции иагаеег В систему МАТЮКАВ можно внедрять функции, написанные на языках С и Богггап, что служит двум целям: (1) появляется возможность вызывать в МАТ1 АВ огромное количество имеющихся программ на С и Гогггап без необходимости их переписывания и отлаживания в виде М-файлов, и ~~20 г и. с г !2) можно оптимизировать критически важные вычислительные процессы, т, е.

алгоритмы, реализации которых на МАТЬАВ работают недостаточно быстро, запрограммировать на С или на Рогсгап более эффективно, воспользовавшись близостью этих языков к машинному коду. При использовании С или Еогсгап, функции, написанные на этих языках, называются МЕХ-файламиа. С ними можно обращаться как с обычными М-файлами или М-функциями МАТЬАВ, но сначала их надо откомпилировать с помощью специальной программы МАТЮКАВ, которая называется шех. Например, для компиляции программы гшгане1 при работе в операционной среде ЪУ)пдогчэ необходимо в командной строке МАТЬАВ выполнить следуюп!ую команду: » шех гшгаче1.

с При этом образуется МЕХ-файл ипгаче1.д11 с расширением .д11. Функцию МЕХ можно сопроводить любой справочной информацией, которую следует расположить в отдельном М-файле с тем же именем (и с расширением .ш). Следующий код функции на языке С для МЕХ-файла ипгаче1 имеет расширение .с; » ипгаче1.с » Оесодев а наг(аЫе 1епЯСЬ содед Ыс вег)пенсе (а чессог о1 16-Ыс 1псебегв) ив1пб а Ыпагу вогс 1гош СЬе МЯВ со сЬе ЕЯВ (асговв чогд ьошгдаг(ев) ьавед оп а сгапв1с1оп саые. » »/ Вгпс1иде >шех.Ь> но1д иигаче1(иив1япед вЬогс »Ьх, доиЫе »11пЬ, доиЫе »х, доиЬ1е хвв, 1пс Ьхвх) ( 1пС 1 = 15, ) = О, Ь = О, и = 0; /» ЯСагС аС гооС поде, 1вс »/ /» Ьх Ыс апд х е1ешепс »/ чЫ1е (хвх — Ь) ( /» Оо иис11 х Св 1111ед »/ 11 (»(11п)г + и) > 0) ( /» 1в СЬеге а 11п)г? »/ 11 ((»(Ьх + )) » 1) !С Ох0001) /» 1в Ыс а 1? »/ и = »Шгйг + и); /» Уев, Вес пеи иоде »/ е1ае и = »Шпк + и) - 1; /» 1С'в 0 ео бес иеи поде »/ 11 (1) 1-; е1ве ()»+! 1 = 15!) /» Яес 1, ) Со пехс ЫС»/ 11 () > Ьхвя) /» В(св 1е1С Со десоде?»/ шехЕггМвЯТхс(>Оис о1 соде Ысв ???>); е1ве ( /» 1С шивс Ье а 1еа1 поде »/ »(х + Ь»+) = -» Шпй + и); /» ОиСриС ча1ие »/ в=О; /» ЯСагс очег ас гооС »/ аМЕХ-функция гМ»С!аь ЕХСегпа! гипс!!оп) строится по программному колу С или Гогггап.

Ее расширение зависит от компьютерной платформы. (Например, в Рдпдоие используется расширение .6Ы) . К д б 32~~1) /> 1я опе 1е1с очег? */ 11 (Ь == хзв — 1) * (х + Ь++) = -* (11пй + и) чо16 шехрипсС1оп(1пс п1Ьв, шхАгтау чр1Ья Ц, АпС пгЬв, сопвс шхАггау >ргЬв[]) доиЫе >11пЬ, кх, хяв; ипв1Епед вЬогс >Ьх; 1пС Ьхвх; /> СЬесЬ 1приСв 1ог геаяопаЫепевв >/ 11(пгЬв != 3) шехЕггМвЕТхС(>ТЬтее 1приСя гейи1ге6.>); е1ве 11 (п1Ьз > 1) шехЕггМяЕТхс(>Тоо шалу оисрис агЕишепсв.>); /> 1в 1авС 1приС агЕишепС а вса1аг? >/ 11 (!шх1в0оиЫе(ргЬя[2]) й шх1яСошр1ех(ргЬв[2]) шхбеСМ(ргЬв[2]) > шхбесМ(ргЬв[2]) != 1) шехЕггМвЕТхс(>1приС Х312Е шивс Ье а яса1аг.>); /* Сгеасе 1прис шасг1х рогпсетз ап6 Еес вса1аг >/ Ьх = шхбесрг(ргЬв[О]); /> 01МТ1б >/ 11пЬ = шхбесрг(ргЬв[1]); /> 000ВЬЕ >/ хвв = шхбеСВса1аг(ргЬя[2]); /> 000ВЕЕ >/ /* СеС СЬе шппвег о1 е1ешепся Ап Ьх */ Ьхях = шхбесМ(ргЬв[О]); /> СтеаСе 'хвв' х 1 оитриС шагг1х >/ р1Ьв[О] = шхСгеасе0оиЬ1еМатг1х(хвх, 1, шхВЕАЬ); /ч ОеС С ро1пСег Со а сору о1 СЬе оиСриС шаСтсх >/ х = шхбеСРг(р1Ьв[О]); /* Са11 сЬе С яиЪгоиссие >/ иптаче1(Ьх, 11пй, х, хвх, Ьхвв); Сопроводительная справочная информация помещается в файле иптаче1.ш: '/ЛМИИЕЬ Оесодев а чаг1аЫе-1епЕСЬ Ь1С зсгеаш.

% Х = УМНАУЕЫУ, ЫМК, ХЬЕМ) 6есодея 01МТ1б АприС чесСог У вазед оп % СгапзАС1оп вп6 оиСриС СаЫе ЫМК. ТЬе е1ешепвв о1 У аге % сопв1дегед Со Ье а сопс1Еиоия вСгеаш о1 епсодед Ысв-с.е., СЬе % МЯВ о1 опе е1ешепс 1о11очв СЬе ЬВВ о1 СЬе ргеч1оив е1ешепс. Харис '/ ХЬЕМ Ав СЬе пишЬег соде чогдв 1п У, апд СЬия СЬе яхве о1 оивриС % чессог Х (с1аяя 000ВЬЕ). Харис ЫМК 1я а Сгапз1ссоп апд оисрис '/ СаЫе (СЬаС дг1чев а вегсев о1 Ыпагу зеагсЬев): % % 1. ЫМК(О) 1в СЬе ептгу ро1пс Хог десод1пЕ, 1.е., яСаСе и = О. % 2. 11 ЫМК(п) < О, СЬе десодед оисриС Ав )ЫМК(п)); яес и = О.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее