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

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

DJVU-файл Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006), страница 14 Системы распознавания образов (3630): Книга - 10 семестр (2 семестр магистратуры)Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006): Системы распознавания образов - DJVU, страница 14 (3630) - Студ2021-01-17СтудИзба

Описание файла

DJVU-файл из архива "Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006)", который расположен в категории "". Всё это находится в предмете "системы распознавания образов" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 14 - страница

В МАТ1,АВ предусмотрено восемь операторов условных переходов, которые приведены в табл. 2.11. Следует помнить, что МАТЬАВ трактует логическую единицу и любое ненулевое число как истина, а логический или числовой нуль --. как ложь. . ц в ан... яН~~ г 6~~5) Выражение ехргеяя/оп вычисляется, и если оно истинно, то выполняются операции, перечисленные в ясасетепгя, расположенные между строками 11 и епо.

Если выражение ехргеяяюп ложно, то МАТЮКАВ пропускает все операции между строками гй и епй. Если имеются вложенные операторы 11, то каждый из них обязан иметь парное слово еш1. Условные операторы е1ве и е1ве11 служат для дальнейшего условного разветвления оператора 11. Общая форма этих операторов имеет следующий вид; 11 ехргаягйоп) я(а(етепгя1 е1ве11 ехргеятйоп2 ясасетепся2 е1ве япагетепгяЗ епй Если ехргеяяюп) есть истина, то выполняется я(агетеп(я), после чего контроль передается на конец условного оператора (епо). Если ехргеягбоп1 есть ложь, то выполняется ехргеяя|опЗ. Если оно есть истина, то выполняется ясасетеппя2, и контроль передается на епа. В противном случае (е1ве) выполняется команда (или группа команд) ягагегпепгяЗ. Обратите внимание на то, что оператор е1ве не имеет условия. Операторы е1ве11 и е1ве могут появляться независимо друг от друга после 1Х. Они нс обязаны быть в паре, как показано в общем виде условного оператора 11, Также допускается многократное присутствие операторов е1ве11.

Пример 2.10. Условные развеговления и появление функций еггог, 1епЕСЬ и шппе1. Пусть требуется написать функцию, которая вычисляет среднюю яркость изображения. Как уже обсуждалось, двумерный массив 1 можно преобразовать в вектор-столбец ч, написав оператор ч =1(: ) . Поэтому желательно, чтобы функция могла работать и с векторами, и с матрицами-изображениями.

Программа должна выдавать сообщение об ошибке, если входной массив не является одномерным или двумерным. Хппсс1оп ан = ачегабе(А) '/АНЕЕАСЕ Сошрпсев сЬе анегабе на1пе от ап аггау. '/ АН = АНЕЕАСЕ(А) сошрпсев сЬе ачегабе ча1пе оХ Апрпс '/ аггау, А, чЬАсЬ шпвс Ье а 1-Р ог 2-Р аггау. '/ сьесь сье на11с)1су от сье 1прпс.

(кеер Ап ш1пй сьас % а 1-Р аггау 1в а врес1а1 саве о1 а 2-Р аггау.) 11 п61ш(А) ) 2 еггог('ТЬе о1шепв1оп о1 сЬе 1прпс саппос ехсеео 2/') еш1 '/ СошрпСе СЬе ачегабе ач = впш(А(:))/1епйсЬ(А(:)); Заметим, что входной массив преобразуется в одномерный с помощью оператора А(: ). В общем случае функция 1епбсЬ(А) возвращает длину самого большого измерения массива А. В рассмотренном примере массив А(:) является вектором, поэтому 1епбсЬ(А(: ) ) дает число элементов А.

Это позволяет исключить ~~~66 Глава 2. Цифровые иэображения е МАТЮКАВ проверку того, является ли входной массив вектором или матрицей. Другой способ прямого определения числа элементов массива заключается в использовании функции ппше1, которая имеет следующий синтаксис: и = пвше1(А) Если А является изображением, то пцше1(А) дает число пикселов. Применяя эту функцию, последнюю строку программы можно переписать в виде ач = ваш(А(:))/ппше1(А(:)); Наконец, отметим, что функция еггог прерывает выполнение программы и выдает на консоль сообщение, помещенное в круглые скобки (сообщение следует помещать в апострофы, как это сделано в нашем примере). П Операгпор Сог Как указано в табл. 2.11, цикл Сог выполняет группу операторов предписанное число раз.

Его синтаксис имеет вид Сот тс)ех = вгаггйпсгетепС:епс( вСагетепгв епс( . Циклы можно вкладывать один в другой следующим образом: Сот Спс(ех1 = вгагС1лпсгетепС1:епс)1 вгаСетепгв) Сот Ст1ех2 = вгягС2йпсгетепС2:ет)2 вгагетепСв2 епс1 вСагетепгвЗ епс) . Например, следующий цикл исполняется 11 раз: соцпс = 1 Сот )с = 0:0.1:1 сопят = соцпс + 1; ело . Если таг цикла опущен, то он принимается за 1. Шаг цикла может быть отрицательным, например, Сог )с = 0:-1:-10. Заметим, что в конце строки Сот не нужно ставить точку с запятой. МАТЮКАВ автоматически подавляет выдачу на печать значений индекса цикла. Как уже отмечалось в ~ 2.10.4, можно достигнуть существенного повышения скорости выполнения программы, если заменить цикл Сот везде, где это возможно, на так называемый еекторияоеаннмй код. 3.

О. В *и и-ф ь2у Пример 2.11. Использование цикла уот длл записи нескольких иэображений в файлы. В примере 2.2 сравнивалось несколько изображений с разными значениями качества сжатия ЗРЕС, Покажем, как можно записать все эти изображения на диск с помощью цикла Сот. Пусть имеется изображение С и требуется записать его в ряд файлов формата ПРЕС со значениями коэффициента качества от 0 до 100 и с шагом 5. Желательно также дать этим файлам имена вида вегйев ххх.

)ря, где ххх — это коэффициент качества изображения. Это можно сделать в следующем цикле Сог: Гог с) = 0:5:100 Х11епаше = врг1пьХ('вег1ев %3й.)рб', с)); 1шигйье(г, с11епаше, 'оиа11ьу', я); ело . В данном случае функция вргйпьг~, имеющая синтаксис в = врг1псС('сЬагассегв1/посЬагасгегв2', с1), записывает отформатированные данные в строку в. В этой синтаксической форме сЬагасьегв1 и сЬагассегв2 — это строки символов, а %пс) — обозначает десятичное число (для переменной с)) с и цифрами.

В нашем примере сЬагассегв1— это вег1ев, величина и равна 3, строка сЬагассегв2 — это . ) ря, а с) — это число, определяемое в цикле. П Оператор иЬ11е Цикл иЫ1е выполняет группу операторов до тех пор, пока контролирующее цикл условное выражение есть истина. Синтаксис имеет вид вЫ1е ехргезз)оп згаСегоепСз ело . Как и в случае с циклом Хог, циклы иЬ11е можно вкладывать друг в друга; ий11е ехргеззюп1 зСасетеп Сз1 вЬ11е ехргезз!оп2 зСаСегаепСз2 епо зСаСетепСзЗ еш1 . Например, следующие вложенные циклы вЬ11е прерываются, когда обе величины а и Ь становятся равными нулю: а=10; Ь=б; См. другие синтаксические формы арттптт на спраеочной странице этой функции.

~~~68 Глава 2. Цифроеые изображения и МАТЬАВ иЬ11е а а=а-1; нЬ11е Ь Ь=Ь вЂ” 1; епд еш1 . Здесь мы использовали соглашение МАТЬАВ трактовать числовые величины в логическом контексте как истина, когда они не равны нулю, и как ложь, когда они равны нулю. Иными словами, иЫ1е а и иЫ1е Ь истинны, пока а и Ь оба не равны нулю. Как и в случае цикла Хог, существенного выигрыша производительности программ можно достигнуть, если заменить циклы нЫ1е на векторизованный код (см. э 2.10.4) везде, где это возможно. Оператпор Ьгеак Из названия этого оператора следует, что он осуществляет прерывание циклов 1ог и иЬ11е.

При обнаружении команды Ьгеа1с выполнение программы продолжается со следующего оператора, находящегося вне цикла. Во вложенных циклах оператор Ьгеа1с вызывает прерывание лишь внутреннего цикла, в котором он находится. Оператор сопс1пие Оператор сопс1пце передает управление следующей итерации в циклах аког или нЫ1е, в которых он обнаруживается, пропуская стоящие после него операции в теле цикла и относящиеся к текущей итерации.

Во вложенных циклах оператор сопг1пце передает управление следующей итерации только внутреннего цикла, в котором он стоит. Оператор ви1ссЬ С помощью этого оператора можно сделать выбор среди нескольких возможных продолжений вычислительного процесса в М-функциях на основе различных типов входных данных.

Синтаксис имеет вид ви1ссЬ яиагсИ ехргеяя1оп саяе саяе ехргеяя1оп ягасешепся1 саве (саяе ехргеяяюп1, саяе ехргеяя1оп2, ...) ясасешеп гя2 осЬеги1яе яСаСетепгяЗ еш1 . Оператор яи1ссЬ строит группу выполняемых операторов, основываясь на величинах переменных и выражений. Ключевые слова саяе и осЬегн1яе очерчивают эти группы. Выполняется лишь первый подходящий оператор саяе~. В конце «В отличие от конструкции еиссеь языка С, и языке МАТЬАВ этот оператор не «сонершается до конца». Т.е. еисссь выполняет только первое подходящее действие саве. Все последующие саве игнорируются, так что не нужно прибегать к оператору Ьгеах.

оператора вчйссЬ должен обязательно находиться оператор епд. Фигурные скобки используются, если несколько выражений включены в одну группу операций саве. В качестве простого примера предположим, что имеется М-функция, которая принимает изображение 1 и конвертирует его в некоторый класс, назовем его печс1авв. Допускаются только три класса для конвертации: п1пс8, папс16 и допЫе. Следующий программный фрагмент осуществляет такую конвертацию и выдает сообщение об ошибке, если класс входного изображения не является допустимым: ач1ссЬ пеяс1азз саве 'пйпх8' 8 = 1ш2п(пт8(Х); саве 'п1пх16' — 1ш2п1пг16(1); саве 'бопЫе' Е = 1ш26опЫе(Х); осЬегч1ае еггог('Упкпочп ог 1шрторег 1шабе с1авв.') еш1 .

Конструкция вч1ссЬ будет интенсивно использоваться на протяжение всей книги. Пример 2.12. Изелечепие подизображения из заданного изображения. В этом примере мы напишем М-функцию (на основе цикла Хог) для извлечения прямоугольного подизображения из исходного изображения. Несмотря на то, что это действие можно осуществить с помощью одного оператора, который будет рассмотрен в следующем параграфе, мы используегя этот пример для сравнения скорости выполнения цикла и векторизованного кода. На вход этой функции подается изображение, размер (число строк и столбцов) извлекаемого подизображения и координаты верхнего левого конца подизображения.

Следует напомнить, что начало изображения в МАТ1.АВ имеет координаты (1, 1) (см. э 2.1.1). тппсс1оп в = впЫш(т, ш, и, тх, су) '/8()81й Ехсгассв а впЫшайе, в, 1гоп а 81неп 1шабе, % ТЬе апЫшабе 1в о1 в1хе ш-Ьу-п, апд сЬе соог61пасев '/ о1 1хв Сор, 1еХС сотпег ате (гх, су) . е = кетов(ш, и); гочЫЕЬ = гх + ш — 1; со1ЫЕЬ = су + и — 1; хсоппс = О; Хог г = гх:гочЫЕЬ хсоппс = хсоппс + 1; усоппс = О; 1ог с = су:со1ЬТЕЬ усонпс = усоппс +1; в(хсоппс, усоппс) = 1(г,с); епб епй . Глава 2. Цифровые изабранеенил в МАТ/АВ В следующем параграфе будет приведена более эффективная реализация этой программы.

В качестве упражнения предлагаем читателю самостоятельно написать программу, которая использует пикл яЬ11е вместо цикла Тот. Гз 2.10.4. Кодовая оптимизация программ Как уже говорилось в А 1.3, МАТЬАВ представляет собой язык программирования, специально разработанный для выполнения операций над массивами. Принимая во внимание этот факт, можно существенно повысить скорость вычислений. В этом параграфе будут обсуждаться два важных подхода к оптимизации кодов программ МАТЬАВ: вектпоризацил циклов и предварительное заполяение массивов.

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