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

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

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

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

'/ 3. 11 ЫМК(п) > О, ЕеС СЬе пехс епсодед Ь1С апд СтвпвАС1оп Со % всаСе [ЫМК(п) — 1] 11 СЬе Ыс Хв О, е1ве ЫМК(п) . (322 Г 8. 0 б г Как и любой МЕХ-файл, построенный из программы на С, МЕХ-файл для ппгаче1. с состоит из двух частей: вычислительной программы и шлюзовой программы, Вычислительная программа, которая также называется пптаче1, содержит программный код на С, реализующий процесс декодирования по схеме на рис. 8.5 с использованием таблицы 11вх. Шлюзовая программа, которая должна называться шехгппссйоп, осуществляет интерфейс (обмен параметрами) вычислительной программы и вызывающей ее М-функции Ьп112шаС.

Она использует стандартный интерфейс МЕХ-файлов МАТЬАВ, который включает следующие элементы: 1. Четыре стандартизованные параметра входа/выхода — п1Ьв, р1Ьв, пгЬв и ртЬв. Эти параметры являются, соответственно, числом выходных аргументов в левой части (целое), массивом указателей на выходные аргументы в левой части (массивы МАТЬАВ), числом входных аргументов в правой части (другое целое) и массивом указателей на входные аргументы в левой части (также массивы МАТЬАВ). 2.

Имеющееся в МАТЬАВ семейство приложений программного интерфейса АР1 (Аррйсайоп Ргойгат 1п1ег~асе). Функции АР1 имеют префикс шх. Они предназначены для создания, доступа, манипулирования и1или удаления структур класса шхАггау. Например, шхСа11ос осуществляет динамическое распределение памяти подобно стандартной функции С сайос, Вместо соответствующих С-функций тайас и гсайос используются функции шхйа11ос и шхкеа11ос; шхбеСЗса1аг извлекает сквляры из входного массива ргЬв. Другие функции шхСес...,например, шхбеСИ, шхбеСИ и шхбеСЯСг1пй извлекают другие типы данных; функция шхСгеасе0опЬ1ейатг1х создает выходной массив МАТЬАВ для р1Ьв.

Другие функции шхСгеасе..., например, шхСгеасеЯСг1пб и шхСтеасе-Уишетйсяттау создают другие типы данных. Функции АР1 с префиксом шех совершают действия в рабочем пространстве МАТЬАВ. Например, шехйтгИвбТхС выдает сообщение в рабочем окне МАТ1 АВ. Прототипы функций АР1 шех и шх, приведенные в пункте 2 предыдущего перечня, расположены в заголовочных файлах МАТЬАВ шех. Ь и шасг1х. Ь соответственно. Оба эти файла размещаются в папке <шаС1аЬ>/ехсегп/1пс1пбе, где <шас1аЬ) обозначает корневую установочную папку вашей системы МАТЬАВ. Заголовок шех.

Ь, который должен быть включен в начало любого МЕХ-файла (обратите внимание на присутствие в начале файла ппгаче1. с записи Ягпс1пбе эшех. Ьъ), содержит в себе также заголовочный файл шасг1х.Ь. Прототипы интерфейсных программ шех и шх, которые хранятся в этих файлах, определяют используемые параметры и придают смысл операциям нвд этими параметрами. Дополнительную информацию по этому вопросу можно узнать из руководства МАТЬАВ по внешним интерфейсам (Ех1егпа) 1п1ег1асеэ). На рис. 8.6 приведенные выше сведения даны в компактной форме, из которой видна структура МЕХ-файла цптаче1, а также обозначено направление потоков информации между ппгаче1 и Ьп112шаС.

Несмотря на то, что эта концепция проиллюстрирована в контексте декодирования Хаффмана, ее легко распространить на другие функции С или Рогтгап, если требуется их использование в МАТЬАВ. В.В. к д б 32333) М-файл нпшче(.ш С МЕХ-файл ипгвче1.с Мпс!обе 'пжх Ь" -функция пзехрнпсйоп Шлюзовая программа для МЕХ-файла чабб шехропсОап( 1п! Ппж гпхАтау'рйж(! Вп1 пйгз, сапа( шхАтау 'Рйгз(!) М-файл Ьн((зша! В М-файле Ьай2ша1 команда х = олгаче1(у, ...

1!пй, М'и) говорит системе МАТ(АВ передать у, 1(пН и щ*п в МЕХ-файл функции цпглче( Возвращаемая переменная р1Ьа(0! присваивается пере- иенной х МАТ1.АВ передает выход МАХ-файла рйз (О! в М-файл Ьсй2юа!. Рис. 8.6. Взаимодействие М-функции Ьцгзлвае и вызываемой нз МАТЕАВ С-функции бшгачеЕ Обратите внимание на то, что МЕХ-файл епгачез состоит из двух функций: шлюзовой программы иехропссхоп и вычислительной программы алгачеЕ Справочная информация для МЕХ-файла «пгачез располагается в отдельном М-файле, который также называется епгачез Г 1 1 МАПАВ передает параметры !у, НпН и т'л в МЕХ-файл: 1 рдга(0! = у 1 1 рйэз(1) = НПН рдзз(2) = п3*п ППВз= 3 пйгз = 1 1 !Параметры пфз и пйжявпя- 1 ются целыми, обозначающи1 ми число аргументов слева и ' справа, а рдзз — вектор, со1 держащий укозажекк на мас1 сизы МАТ1.АВ У, 11пН и П1'и 1 В МЕХ-файле апгаче!.с вычисления начинаются и заканчи- ваются в шлюзовой программе пзехЕцпсйоп, которая вызы- вает С-вычислительную программу алыче(.

Точка входа интерфейса декларируется записью где целые пйз и пфз обозначают число аргументов слева и справа, а векторы рфз и рфз содержат указатели на вход- ные и выходные аргументы типа пнАпау. Тип шхАпау слу- жит в МАТЕАВ для внешнего представления массивов. Пакет АР! МАТЕАВ состоит из функций, которые обраба- тывакп типы данных, поддерживаемме этим паксюм. Здесь мы: !. Используем функпии юхбе!М, шхбе!Ы, шх1збоаЫ, шх1збошр(ех н шехЕпМзОТх! для проверки входных и выходных аргументов. 2.

Используем функцию п1хбе!Рг для получения указателей на рдзз(0) (код Хаффмана) и на рй3з(1) (таблица декодирования) и сохранения нх в виде С-указателей Ьх и 11пй, соответственна. 3. Применяем шхбе!Вса(а!для получения размера выходного массива и сохраняем его в переменной хзг. 4. Применяем шхбе(М для определения числа элементов рйга(0) (кода Хаффмана) и сохраняем его в Ьхзг. 5. Исполиуем тхСшщебоаЫеМвМх и тхбе(рг для создания указателя на выходной массив (для декодера) и присваиваем его р!Ьз(0!. 6. Вызываем вычислительную программу нпгаче(, передавая ее аргуменцл, сформированнме при выполнении шагов 1 — 5.

~Зг4 г В. с бр 6 Пример 8.4. Декодирование с помощью Ьегг2шас. Изображение из примера 8.3 можно продекодировать следующей последовательностью команд;е » 1оа4 Яс)пееветгасу; » 8 = Ьц112шас(с); » Х = 1шгеай('Тгасу.С11'); » гшее = сошраге(с, 8) гшве = 0 Обратите внимание на то, что процесс кодирования-декодирования полностью сохраняет информацию; среднеквадратическая ошибка между исходным и декодированным изображением равна нулю.

В силу того, что значительная часть работы в функции Ьигт2шас выполняется С-функцией епгане1, время ее исполнения немного меньше времени кодирования функцией шас2ЬегХ. Отметим также использование функции 1оа4 дпя повторной загрузки данных из МАТ-файла, в котором были сохранен результат кодирования, полученный в примере 8.3. П 8.3. Межпиксельная избыточность Рассмотрим два изображения на рис. 8.7, а) и в), которые имеют практически одинаковые гистограммы. На этих гистограммах можно выделить три определяющие моды, которые означают присутствие на изображениях трех доминирующих интервалов серых тонов.

Поскольку здесь уровни серого цвета не являются равномерно распределенными, можно использовать коды переменной длины для сокращения кодовой избыточности, которая будет присутствовать при кодировании пикселов по обычной схеме кодами фиксированной длины: » 11 = 1шгеа4(гйапйош МассЬее.С11'); » с1 = шас2Ьц11(11); » епсгору(г1) 7.4253 » 1шгаесо(т1, с1) 1.0704 » Х2 = 1шгеаб('А118пе4 МассЬее.с11'); » с2 = шас2Ьц11(12); » евсгору(т2) 7.3505 » 1шгас1огг2, с2) апе 1.0821 афункция 1оаа Сеге считывает переменные МАТЮКАВ, хранящиеся надиске в файле Мгге.ваь', и загружает их в рабочее пространство.

При выполнении команд ване/1оаа имена переменных не изменяются. 'Зам~чим. ~:о ~н~роиийкьн. отт~нкл перв~ га ~тря,~ко обои~ и ~обрнжеци~~ 6 ~ежа (3 26 т В. с б~ точность с помощью вычитания и кодирования лишь новой (добавочной информации) пикселов. Ноеол информац я пикселов определяется как разность между реальным значением пикселом и величиной его предсказания. Как видно, система состоит из кодера и декодера, и каждый из них имеет один и тот же блок предсказатель. Когда очередной пиксел входного изображения, обозначаемый )„, поступает на вход кодера, предсказатель строит прогноз (оценку значения этого пиксела), основанный на некотором наборе предыдущих входных пикселов.

Затем выход предсказателя округляется до ближайшего целого, обозначаемого )тп, и используется для нахождения разности или ошибки предсказания е„= )„— )т„. а) Входное изображение Сжатое изображение б) Восстановленное изображение Сжатое изображение Рис. 8.8.

Модель кодирования с предсказанием без потери информации: а) кодер; б) декодер Эта ошибка кодируется кодом переменной длины (кодером символов), и тем самым генерируется очередной элемент сжатого потока данных. Декодер на рис. 8.8, б) восстанавливает значение е„по принятому кодовому слову переменной длины и совершает обратное преобразование )о = Е„+ )и. )т„= гоппй ~ ~ст,)'„ где т — это порядок линейного предсказания, операция гоппй (] обозначает округление до ближайшего целого (наподобие функции гошзб из МАТЬАВ), а ст, при Для построения предсказания )т„могут использоваться различные локальные, глобальные или адаптивные методы.

Однако в большинстве случаев принято вы- числять предсказание в виде линейной комбинации т предыдущих пикселов: В,.М б ЗЕ) 1 = 1, 2,..., гп — коэффициенты предсказания. Для одномерного кодирования с предсказанием это выражение можно переписать в виде /'(х, у) = гоппй ~~ а,/'(х, у — () [.=~ где каждая индексированная переменная теперь выражена явно в виде функции пространственных координат х и у. Отметим, что при таком подходе предсказание Д(х, у) зависит лишь от значений пикселов одной текущей обрабатываемой строки.

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

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

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