Что такое интерполяция. Изменение разрешения путем интерполяции изображения

Теперь для интерполяции множеств можно использовать формулу (1). Она примет вид:

Чтобы осуществить построение переходного множества при некотором значении t ,нужно сначала построить множества и , далее найти их сумму.

Пример 4. Пусть – круг радиуса с центром в точке = (0;0), – круг радиуса с центром в некоторой точке . Тогда интерполяционное множество () – это круг с центром в точке , расположенной на отрезке / /, радиуса (рис.9).

Рис.9. Интерполяция двух кругов

Действительно, зафиксировав некоторое значение t (), построим множества и . Окажемся в условиях примера 2. Переписав его результат в текущих обозначениях, получаем нужное утверждение. Видим, что в этом случае переходные изображения (круги) примыкают к общим касательным, проведённым к двум исходным кругам, т.е. результаты интерполяции очень хорошо согласуются с нашими наглядными представлениями о переходных изображениях.

Замечание. Из свойств арифметических операций над множествами следует, что аналогичная картина получится при интерполяции двух любых кругов. Действительно, круг радиуса с центром в произвольной точке может быть представлен в виде суммы круга радиуса с центром в точке (0;0) и множества, состоящего из одной точки (равносильно вектора ): = + . Тогда интерполяционная формула даёт:

= = + .

Остаётся заметить, что семейство векторов , , является переходным от вектора к нулевому вектору.

Таким образом, для удобства осуществления интерполяции (выполнения арифметических операций) можно всегда брать множества (фигуры), примыкающие к началу координат, поскольку произвольные заданные множества сводятся к такой ситуации сдвигом на определённые векторы. Эти векторы затем нужно тоже проинтерполировать (с тем же значением параметра t ).

Среди важных особенностей метода отметим факт, что при интерполяции двух многоугольников, вершины интерполяционного многоугольника получаются интерполяцией (с тем же значением t ) вершин исходных многоугольников. Это следует из того, что арифметические операции над множествами определяются через арифметические операции над отдельными их векторами. Получить «экстремальный» вектор в переходном множестве можно лишь, складывая соответствующие «экстремальные» векторы в исходных множествах.

Пример 5. Пусть – квадрат 2 x 2 с правой нижней вершиной в начале координат, – прямоугольник 4 x 5 с левой нижней вершиной в начале координат (стороны обеих фигур параллельны осям координат) (рис. 10). Построим интерполяционное множество .

1 способ. Воспользуемся формулой (2) при . Построив множества
и (их границы на рисунке 10 проведены пунктирными линиями), находим их сумму. Получим прямоугольник .

Рис.10. Интерполяция прямоугольников на основе арифметических операций

2 способ. Сопоставим соответствующие вершины исходных прямоугольников (в данном случае их соответствие очевидно, на рис. 11 оно показано отрезками); проинтерполировав каждую из этих пар точек (векторов) с заданным , получим вершины интерполяционного множества (прямоугольника).

Рис.11. Интерполяция прямоугольников путём интерполяции вершин

Снова обсуждаемый метод интерполяции даёт такой результат, какой мы ожидали бы увидеть.

Пример 6. Пусть – прямоугольные равнобедренные треугольники с гипотенузой h =100 и общей вершиной в начале координат. Тогда в результате интерполяции по Минковскому при получим шестиугольник (интерполяционное множество ) (рис. 12).

Рис.12. Интерполяция симметричных треугольников

Вычисления по интерполяционной формуле (2) сразу приводят к указанному итогу. В отличие от предыдущего примера, в случае данных треугольников сопоставление вершин, осуществляемое методом Минковского, как и сам результат, оказывается несколько неожиданным. Действительно, попарная интерполяция «верхних» и «нижних» вершин треугольников при даёт соответственно «верхнюю» и «нижнюю» вершины шестиугольника. А вот вершины прямых углов треугольников «интерполируются» с каждой из «верхней» и «нижней» вершин другого треугольника.

Результат примера 6, конечно, оставляет вопросы. Однако если вдуматься, то вряд ли мы сможем предложить «логичный» вариант переходного множества. Изначально предполагалось интерполировать «близкие», сходные изображения. См. также ниже замечание об особенностях интерполяции противоположных векторов.

Ещё более удивителен следующий случай.

Пример 7. Пусть – отрезки на осях координат: ,

Тогда – квадрат со стороной единица, нижние вершины которого расположены в точках (1;0) и (2;0) (рис. 13).

Рис.13. Интерполяция отрезков

Множества и представляют собой соответственно отрезки и . Складывая их /прибавляя к каждой точке (вектору) отрезка отрезок (всевозможные векторы из него)/, получаем квадрат. В условиях примера 7 по наглядным представлениям переходным множеством, очевидно, должен бы быть отрезок, но особенности метода интерполяции приводят к прямоугольнику.

Анализируя разобранные примеры, можно увидеть, что алгоритм Минковского даёт блестящие результаты в случаях, когда:

1) ,

Изображение, оцифрованное на сканере, в процессе редактирования представляется на мониторе компьютера и обрабатывается в редакторе таким образом, чтобы получилась печатная версия высокого качества. Эта цепочка операций настолько привычна для большинства пользователей, что мало кто задумывается о тех непростых трансформациях, которые претерпевает оригинал на этом пути.

Экранная версия изображения - это просто матрица точек, которая описывается своими размерами по высоте и ширине. Изображение с размерами 600 на 400 будет занимать фиксированную долю экранного пространства на любом мониторе, независимо от его принципа действия. Оно закроет почти весь экран, если для него выбрано разрешение 640*480, на экране с разрешением 1024*768 оно займет примерно четверть пространства, наконец, при разрешении 1600*1200 будет занято чуть более одной девятой площади экрана. При этом физические размеры, т.е. размеры, которые рассчитываются в дюймах и сантиметрах, будут зависеть от диагонали монитора.

А каковы будут размеры картинки при выводе ее на печать? Для искушенного пользователя Photoshop ответ очевиден. Размеры печатной версии совпадают с габаритами сканированного оригинала (если быть предельно точным, то с размерами области сканирования). Это естественное соглашение для всех программ обработки графики является установкой по умолчанию; но большая часть растровых редакторов располагает специальными средствами изменения размеров печати.

Чтобы установить такой размер экранной версии изображения, который совпадает с его печатным вариантом, требуется выполнить команду главного меню View - Print Size (Просмотр - Размер при печати) редактора Photoshop или воспользоваться кнопкой панели с тем же названием.

Пусть требуется отпечатать изображение размером 600*600 пикселов. Эти размеры - данность, сейчас не имеет значения способ их получения разрешение сканирования и установки печати. Если задать размеры печатной версии в 10 дюймов, то разрешение будет равно 600 dot / 10 inch = 60 dpi . Приведем ряд значений разрешения для разных габаритов печатного оттиска:

  • 600dot / 5inch = 120dpi;
  • 600dot / 3inch = 200dpi;
  • 600dot / 2inch = 300dpi.

Все эти изменения совершенно не затрагивают экранную версию, все ее достоинства и недостатки заложены на этапе сканирования и изменения области печати не влияют на качество оцифрованного оригинала. А вот на качество печатной версии это влияет и существенно.

Для любого печатного оборудования есть некоторое оптимальное значение разрешения цифрового изображения, когда устройство печати будет способно передать максимальное число деталей оригинала. Качество результата зависит и от типа выбранной бумаги. Это влияние особенно сильно проявляется для наиболее популярных в наше время печатных устройств - цветных струйных принтеров.

Пусть, для выбранного принтера и сорта бумажного носителя оптимальным является значение разрешение, равное 200 dpi . Какие последствия вызовет вывод на печать выбранного оригинала с разрешением в 120 dpi ? Это решение приведет к потере качества, поскольку часть деталей будет потеряна при печати. А если побороться за результат, выбрав более высокое разрешение печати? Если, например, выставить 300 dpi или более, то принтеру будет передана избыточная информация, которой он просто не сможет воспользоваться.

Предположим, что сканированная версия изображения демонстрирует посредственное качество при выводе на монитор. Можно ли поправить дело, отпечатав ее на высококачественной бумаге с высоким разрешением? Фокус не получится, поскольку печать не добавляет новой информации к оригиналу, принтер использует только те данные, которые заложены в изображение на этапе оцифровки. Эти мысленные эксперименты, конечно, упрощают реальное положение дел, но действие принципа разумной достаточности для выбора оптимального разрешения печати вряд ли можно оспорить.

Итак, если зафиксировать точечные размеры изображения, то любые изменения разрешения влекут за собой модификацию области печати. Справедливо и обратное утверждение. В растровой графике это преобразование принято называть масштабированием.

Зачем масштабировать изображение? Причины для этого многообразны и часто очень весомы. Многие современные цифровые камеры среднего уровня продуцируют изображения небольшого размера, которые, будучи отпечатанными, занимают площадь почтовой марки. Настольные издательские системы требуют изображения фиксированных размеров, которые могут не совпадать с оригинальными габаритами и пр.

Масштабирование не меняет физические размеры графического файла, поскольку не воздействует ни на один из параметров (число точек, глубина цвета), от которых зависит его значение.

Дискретизация

Изменение числа точек изображения называется дискретизацией. Эта операция очевидным образом влияет на размеры экранной версии изображения, которая на мониторе с неизменными характеристиками становится больше или меньше, в зависимости от заданных значений.


Рис. 2.4.

Поясним эту операцию на примере изображения из стандартной коллекции редактора (рис. 2.4). Оригинальная версия картинки, которая занимает среднюю позицию, имеет разрешение в 72 dpi . Увеличение разрешения в два раза до 144 dpi влечет за собой возрастание количества точек и рост линейных размеров экранной версии изображения (правый образец). Уменьшение разрешения до 36 dpi продуцирует прямо противоположные последствия (левый образец).

В отличие от масштабирования дискретизация - это не элементарная с вычислительной точки зрения операция, поскольку она решительно вмешивается в структуру изображения.

Пусть имеется изображение размером 400*400 точек. Если сократить его экранные размеры до 300*300 , то, на первый взгляд, это означает незначительное вмешательство в оригинал - сокращение всего лишь на три четверти. Иная картина открывается если подсчитать количество точек до операции и после. Исходная картинка состояла из 400*400 = 160 000 точек, а после преобразования насчитывает 300*300 = 90000 точек - почти наполовину меньше. Понятно, что такая масштабная по своим последствиям операция не может не сказаться на качестве картинки.

Еще более сложные задачи приходится решать при увеличении количества точек. Если при их уменьшении программа просто отбрасывает лишние пикселы, то при увеличении матрицы дополнительные точки надо "придумать". Добавление новых пикселов выполняется по специальным алгоритмам интерполяции.

Уменьшение количества точек изображения - это сравнительно безопасная процедура, которая не оказывает прямого влияния на качество оригинала Увеличение точек сложнее по своим алгоритмам и последствиям Небольшое приращение растра не влечет за собой заметных отрицательных последствий. Масштабное преобразование такого рода почти всегда ухудшает резкость изображения, отчасти размывая образ.

В растровой графике получили распространение три основных метода дискретизации (все они поддерживаются редактором Photoshop ), которые различаются между собой скоростью работы и точностью результатов:

  • Nearest Neighbor (По соседним пикселам). Самый простой метод интерполяции, обладающий высокой скоростью работы и результатами не самого высокого качества. В качестве образца для нового пиксела берутся характеристики его ближайшего фактического соседа. Метод дает неплохие результаты для областей с регулярной геометрией, например прямых линий, прямоугольников и пр.;
  • Bilinear (Билинейная). Этот метод несколько сложнее в реализации, но дает лучшие результаты по сравнению с методом Nearest Neighbor . Параметры новой точки рассчитываются усреднением цветовых или тоновых характеристик соседних действительных пикселов изображения. Свои преимущества метод показывает при уменьшении количество точек изображения. Рациональной областью его применения является обработка изображений среднего качества;
  • Bicubic (Бикубическая). Это лучший метод интерполяции, по этой причине он принят по умолчанию в редакторе Photoshop . Новые точки рассчитываются по существующим соседям на основе несколько более сложных алгоритмов, чем в предыдущем методе;
  • Bicubic Smoother (Бикубическая со сглаживанием). Вариант метода бикубической интерполяции. Он предназначен для дискретизации изображений высокого качества при увеличении их размеров;
  • Bicubic Sharper (Бикубическая с настройкой резкости). Вариант метода бикубической интерполяции. Он предназначен для обработки качественных изображений при уменьшении их размеров.

Что происходит с разрешением и областью печати при выполнении процедуры дискретизации? Ответ дает определение понятия разрешение: Длина ( inch ) * Разрешение (dpi)= Количество точек .

Это соотношение показывает, что при любой дискретизации изображения должны меняться его фактическая длина или разрешение. С точки зрения математики обе возможности равноправны, важно только сохранить равенство правой и левой частей уравнения. При дискретизации изображения в Photoshop меняются размеры печати, при этом разрешение остается неизменным. Путем чуть более сложных манипуляций с числовыми полями того же диалогового окна можно компенсировать изменение числа точек при помощи новых значений разрешения.

Операцию дискретизации могут выполнять и устройства оцифровки. При обработке оригинала с разрешением, которое не является целой частью максимального оптического разрешения сканера осуществлена процедура во многом напоминающая билинейную интерполяцию, выполняемую растровыми редакторами при изменении числа точек изображения. Рассмотрим эту ситуацию более подробно. Пусть требуется оцифровать оригинал шириной в три дюйма на сканере с максимальным оптическим разрешением в 600 dpi . Простым умножением можно найти количество светочувствительных, которые будут задействованы в этой процедуре. Оно равно 600 * 3 = 1800 . Если установлено разрешение, равное половине максимального (300 dpi ), то в процессе оцифровки будет участвовать 900 датчиков, т.е. каждый второй. Работу в таком режиме можно организовать элементарными средствами, не внося глубокие изменения в алгоритмы управления прибором. Совсем иная ситуация возникает, если выбрать такую плотность оцифровки, которая не является целой частью максимального оптического разрешения. Это приведет к нарушению регулярности расположения активных датчиков, поэтому подлинный вид сканируемого оригинала может быть сформирован только с участием специальных корректирующих алгоритмов, работающих по принципу программной интерполяции.

Выбор разрешения сканирования часто обосновывается рациональными доводами, но, несмотря на веские физические аргументы и стройные логические рассуждения, у пользователя почти всегда остается значительная свобода выбора. Даже в мысленном эксперименте трудно представить себе такую ситуацию, когда невозможно отступить от рассчитанного разрешения сканирования. В большинстве случаев качество изображения не претерпевает критических изменений даже при значительных отклонениях разрешения от рассчитанных оптимальных значений. Поэтому следует выбирать такую плотность оцифровки, которая приближает расчетное значение сверху и одновременно является целой частью максимального оптического разрешения выбранного устройства сканирования. Иными словами, если сканер способен работать с разрешением в 300 dpi , то кратные числа 75, 100, 150 dpi предпочтительнее, чем установки сканирования, не являющиеся целой частью от 300, например 120 или 175 dpi . Если для некоторого оригинала при помощи расчета или иным путем получено оптимальное разрешение, равное 140 dpi , то в реальной сессии сканирования целесообразно установить 150 dpi .

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

В англоязычной литературе часто проводят тонкое терминологическое различие между увеличением и уменьшением количества точек. Первая операция называется upsampling, а вторая - downsampling, а сам родовой термин - resampling. В отечественной литературе можно встретить дословный, калькированный перевод этих операций на русский язык - апсамплинг, даунсамплинг и ресамплинг! Если с последним термином еще можно примириться, то первые два слова явно не согласуются со строем русской речи и их существование не диктуется технической необходимостью.

Масштабирование и дискретизация в Photoshop

Photoshop - это профессиональный растровый редактор, поэтому он полноценно поддерживает функции масштабирования и дискретизации. Все возможные операции этого типа выполняются средствами одного диалогового окна Image Size (Размер изображения). Для вывода его на экран достаточно выполнить команду Image - Image Size (рис. 2.5).


Рис. 2.5.

Рассмотрим основные возможности этого окна:

  • Pixel Dimensions (Размерность). В этом разделе выводятся размеры изображения, заданные в пикселах или процентах, и общий размер текущего документа в килобайтах или мегабайтах. Поля этого раздела доступны, если опция Resample Image (Интерполяция) является активной. В противном случае программа запрещает прямое изменение этих величин;
  • Document Size (Размер печатного оттиска). В этой секции выводится сведения о фактических габаритах печатного оттиска и разрешении, при котором изображение получает текущие размеры. Эти поля допускают прямое изменение. Увеличение размеров печатного оттиска влечет за собой возрастание числа пикселов цифровой версии изображения и наоборот;
  • Constrain Proportion (Сохранить пропорции). Данная опция управляет сохранением пропорций документа. Если она включена, то при любых операциях с изображением будет сохранено исходное соотношение сторон. Если опция не выбрана, то размеры сторон разрешается менять независимо друг от друга.
  • Resample Image (Интерполяция). Эта опция управляет процессом дискретизации. Если она включена, то программа разрешает менять точечные размеры оригинала, а следовательно и общее количество пикселов, по выбору пользователя. В противном случае все поля раздела Pixel Dimension становятся недоступными, и управление габаритами осуществляется только посредством настройки печатных размером или разрешения.
  • Изменение размеров растра выполняется при помощи алгоритмов интерполяции. Для выбора метода интерполяции служит безымянный список, расположенный рядом с переключателем. В нем можно выбрать один из пяти доступных методов пересчета изображения Nearest Neighbor (По соседним пикселам), Bilinear (Билинейная) и три варианта метода Bicubuc (Бикубическая). Особенности этих алгоритмов дискретизации обсуждались в предыдущем разделе.

Если манипуляции с установками диалогового окна Image Size оказались неудачными, то можно их сбросить и вернуться к стартовым значениям параметров. Для этого надо нажать и удерживать клавишу Alt, в результате кнопка Cancel превратиться в Reset, которая служит для отказа от сделанных окне изменений. Этот стандартный для редактора прием используется во многих диалогах программы.

Какие причины заставляют прибегать к масштабированию? Невозможно упомянуть обо всех ситуациях, когда это прием оказывается необходимым. Приведем лишь один пример. Многие цифровые камеры продуцируют оригиналы низкого разрешения и значительных размеров. Пусть получено изображение с разрешением 72 dpi и с размерами 30 на 20 сантиметров. Если отправить его на печать в таком состоянии, то качество оттиска будет невысоким. Можно с уверенностью прогнозировать появление неровностей на краях линий и отчетливо различимые ступеньки на областях с плавными цветовыми переходами. Количество точек в оригинале достаточно велико (почти полмиллиона) для того, чтобы получить печатную версию высокого качества. Требуется просто уменьшить размеры печатной версии. Для этого надо отключить опцию Resample Image и в полях раздела Document Size ввести разумные размеры печати, например 10 сантиметров по ширине. Программа пересчитает все остальные доступные параметры. Высота при этом будет равняться 6,5 см, а разрешение станет равным 215. Эти значения гарантируют печать достаточно высокого качества.

Ключевые термины

Бикубическая интерполяция - метод интерполяции, в котором новые точки растрового изображения создаются по цветовым и яркостным значениям нескольких соседних пикселов. Этот метод интерполяции основан на более сложном алгоритме расчета, чем метод ближайшего соседа, поэтому он требует больших вычислительных ресурсов, но дает более качественные результаты.

Глубинацвета - общее количество двоичных разрядов, приходящихся на один пиксел растрового изображения. Пусть некоторое изображение записано в системе RGB , и на каждую хроматическую координату R, G, и B отводится по 8 двоичных разрядов (1 байт). Можно утверждать, что это изображение имеет глубину цвета 8 бит на канал или 3 * 8 = 24 бита на пиксел.

Дискретизация - изменение числа точек растрового изображения.

Интерполированное разрешение - характеристика устройств оцифровки, у которых точки цифрового изображения получаются комбинацией физического считывания и программной интерполяции.

Интерполяция растрового изображения - процедура расчета и добавления новых точек в растровое изображение.

Масштабирование растрового изображения - изменение разрешения изображения при выводе его на различные носители, при условии сохранения точечных размеров оригинала.

Метод ближайшего соседа - метод интерполяции, который порождает новые точки растрового изображения, заимствуя цветовые и яркостные характеристики от ближайшей соседней точки. Самый быстрый и грубый метод интерполяции.

Механическое разрешение - характеристика планшетных сканеров, равная вертикальной плотности выборки. Этот параметр, как правило, равняется минимальному смещению каретки планшетного сканера, поэтому называется вертикальным разрешением.

Оптическое разрешение - характеристика планшетных сканеров, равная плотности фоторецепторов. Иногда этот параметр называют горизонтальным разрешением.

Оцифровка - процедура перевода изображения в растровую электронную форму.

Разрешение изображения - характеристика растрового изображения, задающая плотность точек (пикселов) на единицу длины. Измеряется обычно в точках на дюйм (dot per inch , dpi ) или пикселах а дюйм (pixel per inch , ppi ).

Разрешение цифрового фотоаппарата - общее количество рецепторов фоточувствительной матрицы, например 8 мегапикселов = 8 млн. пикселов.

Разрешение экрана - два числа, равные максимальному количеству независимых адресуемых точек по ширине и высоте, например 800*600, 1024*768 .

Цветовое пространство True Color - цветовое пространство системы RGB с глубиной цвета 24 бита на точку. Множество цветов этого пространства составляет 16 777 216. Этой палитры достаточно для представления и обработки большей части цифровых изображений в электронном издательстве и полиграфии.

Для увеличения или уменьшения размера изображения Фотошоп использует метод Интерполяции. Так, например, при увеличении изображения, Фотошоп создает дополнительные пиксели на основе значений соседних. Грубо говоря, если один пиксель черный, а другой белый, то Фотошоп вычислит среднее значение и создаст новый пиксель серого цвета. Некоторые виды интерполяции быстрые и некачественные, другие более сложные, но с помощью них достигаются хорошие результаты.

Для начала пойдем в главное меню Изображение - Размер изображения (Image - Image Size) или Alt+Ctrl+I .

Если вы кликните по стрелочке около параметра Ресамплинг (Resample Image) , то в выплывающем окне появится несколько вариантов интерполяции:

  • Автоматически (Automatic) . Приложение Photoshop выбирает метод ресамплинга на основе типа документа и увеличения либо уменьшения его масштаба.
  • Сохранить детали (с увеличением) (Preserve details (enlargement)) . Если выбран этот метод, становится доступным ползунок Снижение шума для сглаживания шума при масштабировании изображения.
  • Сохранение деталей 2.0 (Preserve Details 2.0) . Этот алгоритм даёт очень даже интересный результат увеличения картинки. Конечно, детализация подробнее не становится, но та, что есть увеличивается довольно сильно не теряя чёткости.
  • . Хороший метод для увеличения изображений на основе бикубической интерполяции, разработанный специально для получения более гладких результатов.
  • Бикубическая (с уменьшением) (Bicubic Sharper (reduction)) . Хороший метод для уменьшения размера изображения на основе бикубической интерполяции с повышенной резкостью. Этот метод позволяет сохранить детали изображения, подвергнутого ресамплингу. Если интерполяция «Бикубическая, c уменьшением» делает слишком резкими некоторые области изображения, попробуйте воспользоваться бикубической интерполяцией.
  • Бикубическая (плавные градиенты) (Bicubic (smooth gradients)) . Более медленный, но и более точный метод, основанный на анализе значений цвета окружающих пикселей. За счет использования более сложных вычислений бикубическая интерполяция дает более плавные цветовые переходы, чем интерполяция по соседним пикселам или билинейная интерполяция.
  • По соседним пикселам (четкие края) (Nearest Neighbor (hard edges)) . Быстрый, но менее точный метод, который повторяет пиксели изображения. Этот метод сохраняет четкие края и позволяет создать файл уменьшенного размера в иллюстрациях, содержащих несглаженные края. Однако этот метод может создать зубчатые края, которые станут заметными при искажении или масштабировании изображения, или проведении множества операций с выделением.
  • Билинейная (Bilinear) . Этот метод добавляет новые пиксели, рассчитывая среднее значение цвета окружающих пикселей. Он дает результат среднего качества.

Пример использования Бикубическая (с увеличением) (Bicubic Smoother (enlargement)) :

Есть фото, размеры 600 х 450 пикселей разрешение 72 dpi

Нам нужно его увеличить. Открывает окно Размер изображения (Image Size) и выбираем Бикубическая (с увеличением) (Bicubic Smoother (enlargement)) , единицы измерение - проценты.

Размеры документа сразу установятся на значения 100%. Далее будем постепенно увеличивать изображение. Измените значение 100% на 110%. Когда вы измените ширину, высота автоматически подгонится сама.

Теперь его размеры уже 660 х 495 пикселей. Повторяя данные действия можно добиться хороших результатов. Конечно, идеальной четкости нам добиться будет достаточно сложно, так как фото было маленькое и низкого разрешения. Но посмотрите, какие изменения произошли в пикселях.

Насколько большими мы можем делать фотографии благодаря методу интерполяции? Все зависит от качества фотографии, как оно было сделано и для каких целей вы его увеличиваете. Лучший ответ: возьмите и проверьте сами.

До встречи в следующем уроке!

Установка свойств отображения

В приложении Image Processing Toolbox существует возможность настройки установок, которые контролируют некоторые свойства функций отображения изображений imshow и imtool. Например, использование установок приложения позволяет описать коэффициент увеличения, который применяется при выводе изображений с помощью функций imtool и imshow.

В рамках данного вопроса рассмотрим

  • Список установок, которые поддерживаются приложением.
  • Описание процесса получения текущих значений установок с использованием функции iptgetpref.
  • Описание процесса установки текущих значений установок с использованием функции iptsetpref.

Установки приложения

Приложение Image Processing Toolbox поддерживает несколько установок, которые влияют на способ отображения изображений с помощью функций imshow и imtool. В таблице приведен список установок и их короткое описание. Для получения более детальной информации относительно установок приложения и их значений см. описание функции iptsetpref.

Установки приложения Описание
ImshowBorder Этот параметр может принимать два значения - "loose" и "tight". Если параметр ImshowBorder принимает значение "loose", то изображение будет отображаться функцией imshow с отступом от края окна figure. Таким образом, в окне остается место для дополнительных надписей. Используется по умолчанию. Если параметр ImshowBorder принимает значение "tight", то изображение будет отображаться функцией imshow так, чтобы оно занимало все окно figure.
ImshowAxesVisible Этот параметр может принимать два значения - "on" и "off". Если параметр ImshowAxesVisible принимает значение "on", то при выводе изображения функцией imshow в окне figure будут дополнительно выведены оси координат. Если же параметр ImshowAxesVisible принимает значение "off", то оси координат выводиться не будут. Значение параметра "off" устанавливается по умолчанию.
ImshowInitialMagnification Управляет коэффициентом увеличения, который используется функцией imshow при выводе изображения.
ImtoolInitialMagnification Контролирует коэффициент увеличения в приложении Image Tool, которое используется для масштабирования изображений.

Получение значений установок приложения

Для определения текущих значений используется функция iptgetpref. Рассмотрим пример использования функции iptgetpref для определения значения свойства imtoolInitialMagnification.

Iptgetpref("ImtoolInitialMagnification") ans = 100

Для более детальной информации см. описание функции iptgetpref.

Установка значений свойств приложения

Для установки значений свойств приложения используется функция iptsetpref. Рассмотрим пример использования функции iptsetpref для установки свойств отображения, которые приводят к тому, что при вызове функции imshow будет изменятся размер окна отображения в соответствии с размерами отображаемого изображения и значением свойства "ImshowBorder".

Iptsetpref("ImshowBorder", "tight");

Для более детальной информации см. описание функции iptsetpref.

Пространственные преобразования

Рассмотрим основные функции пространственных преобразований, которые реализованы в приложении Image Processing Toolbox.

Терминология Описание основных терминов, которые используются при обработке изображений
Интерполяция Пространственный (или временной) прогноз значений неизвестных значений пикселей между истинными значениями пикселей.
Изменение размеров изображения с помощью функции imresize.
Вращение изображений Использование функции imrotate для поворота изображений.
Вырезание изображения Использование функции imcrop для вырезания прямоугольной части изображения.
Описание основных свойств пространственных преобразований в приложении.

Интерполяция

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

Методы интерполяции

Приложение Image Processing Toolbox использует три встроенных алгоритма интерполяции:

  • Интерполяция по ближайшему соседу - используется значение ближайшего пикселя.
  • Билинейная интерполяция - используется интерполяция по билинейной поверхности.
  • Бикубическая интерполяция - используется интерполяция по бикубической поверхности.

Типы изображений

В функциях, которые используют интерполяцию, в качестве аргумента указывается название метода интерполяции. Для большинства функций это интерполяция с использованием значений ближайших пикселей. Этот метод дает приемлемые результаты для всех типов изображений и является единственным методом, который используется для индексных изображений. Для яркостных и RGB изображений лучше использовать билинейную или бикубическую интерполяцию, поскольку, в большинстве случаев, эти методы обеспечивают лучший результат, чем при использовании интерполяции с использованием значения ближайших пикселей.

Для RGB изображений интерполяция выполняется отдельно для красной, зеленой и синей составляющих. В принципе, это не совсем корректно, поскольку приводит к нарушению цветового баланса.

Для бинарных изображений интерполяция даст эффект, если проводить ее осознанно. При использовании билинейной или бикубической интерполяции вычисленные значения пикселей на результирующем изображении не всегда будут равны 0 или 1. Результат обработки также зависит от формата исходного изображения:

  • Если данные исходного изображения представлены в формате double, то результирующее изображение будет полутоновым и представленным в формате double. Таким образом, результирующее изображение не будет бинарным, поскольку содержит значения из диапазона между 0 и 1.
  • Если исходное изображение представлено в формате uint8, то результирующее изображение будет бинарным и представленным в формате uint8. Значения интерполирующих пикселей будут округлены к 0 и 1, а результирующее изображение будет представлено в формате uint8.

При использовании интерполяции с использованием значений ближайших пикселей результат будет всегда бинарным, так как значения интерполируемых пикселей берутся из исходного изображения.

Изменение размеров изображения

Для изменения размеров изображения используется функция imresize. При использовании функции imresize необходимо

  • Описать размер результирующего изображения.
  • Описать выбранный метод интерполяции.
  • Описать фильтр препарирования изображений.

При использовании функции imresize размер результирующего изображения можно указать двумя путями:

  • через описание коэффициента увеличения.
  • через описание размеров результирующего изображения.

Использование коэффициента увеличения

Для увеличения изображения необходимо, чтобы коэффициент увеличения был больше 1. Для уменьшения изображения необходимо, чтобы коэффициент увеличения находился в диапазоне между 0 и 1. Например, с помощью команды, которая написана ниже, реализуется увеличение изображения I в 1.25 раз.

I = imread("circuit.tif"); J = imresize(I,1.25); imshow(I) figure, imshow(J)

Описание размера результирующего изображения

Существует возможность описать размер результирующего изображения в виде вектора, который содержит два числа - количество строк и столбцов результирующего изображения. Рассмотрим пример создания результирующего изображения Y, которое состоит из 100 строк и 150 столбцов.

Y = imresize(X,)

Примечание. Если при описании размеров результирующего изображения не сохранены пропорции соотношения сторон исходного изображения, то результирующее изображение будет искажено.

Описание метода интерполяции

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

Рассмотрим пример, когда функция imresize использует билинейную интерполяцию.

Y = imresize(X,,"bilinear")

Использование фильтров препарирования изображений

Изменение размеров изображения может привести к возникновению артефактов на изображении, что отражается на его качестве.

Поэтому при уменьшении изображений с использованием билинейной или бикубической интерполяции, функция imresize автоматически использует низкочастотный фильтр для уменьшения артефактов на результирующем изображении.

Функция imresize может не применять низкочастотный фильтр, если используется интерполяция по соседним элементам. Интерполяция по соседним элементам используется, в основном, для индексных изображений, а низкочастотная фильтрация для индексных изображений не применяется.

Также можно создать свой фильтр для проведения низкочастотной фильтрации. Для более детальной информации см. описание функции imresize.

Поворот изображений

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

  1. изображение, которое нужно повернуть;
  2. угол поворота.

Угол поворота можно описать в градусах. Если задать положительное значение, то функция imrotate будет вращать изображение против часовой стрелки, если задать отрицательное значение, то функция imrotate буде вращать изображение по часовой стрелке. Рассмотрим пример поворота изображения I на 35 градусов против часовой стрелки.

J = imrotate(I,35);

В качестве необязательных аргументов в функции imrotate также можно описать

  1. метод интерполяции;
  2. размер результирующего изображения.

Описание метода интерполяции

По умолчанию, функция imrotate использует интерполяцию по соседним элементам для определения значений пикселей результирующего изображения. Также пользователь может использовать другой метод интерполяции. В таблице подан список поддерживаемых интерполяционных методов.

Рассмотрим пример поворота изображения на 35° против часовой стрелки с использованием билинейной интерполяции.

I = imread("circuit.tif"); J = imrotate(I,35,"bilinear"); imshow(I) figure, imshow(J)

Описание размера результирующего изображения

По умолчанию, функция imrotate создает результирующее больше, так чтобы поместить исходное изображение, которое размещено под указанным углом. Пикселям, которые находятся за пределами изображения, устанавливается значение 0 и они являются фоном результирующего изображения. Если в функции imrotate в качестве аргумента указать опцию "crop", то результирующее изображение будет обрезано до размеров исходного изображения. Для более детальной информации см. описание функции imrotate.

Вырезание изображений

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

  1. исходное изображение;
  2. координаты прямоугольника, которым определяется площадь вырезания.

Существует также другой путь использования функции imcrop. Он заключается в том, что не всегда нужно указывать прямоугольник, который вырезается на изображении. Этот прямоугольник можно задать интерактивно. В этом случае курсор изменяет свой вид и принимает форму крестика. Нажатие на левую клавишу мыши свидетельствует о выборе одного угла прямоугольника, а место курсора в момент отпуска клавиши мыши свидетельствует о выборе другого угла. Таким образом поверх изображения будет наложен прямоугольник, который определяет вырезаемую часть изображения.

Imshow circuit.tif I = imcrop; imshow(I);

Выполнение основных пространственных преобразований

Для выполнения основных двумерных пространственных преобразований используется функция imtransform.

При использовании функции imtransform необходимо указать два основных аргумента:

  • исходное изображение;
  • структуру пространственных преобразований (TFORM), которая определяет тип нужных преобразований.

Описание типа преобразований

При описании типа преобразований необходимо использовать структуру TFORM. Существует два пути использования TFORM:

  • использование функции maketform;
  • использование функции cp2tform.

Использование maketform

При использовании функции maketform необходимо описать тип нужных преобразований. В таблице приведен список типов преобразований в алфавитном порядке, который поддерживается функцией maketform.

Тип преобразования Описание
"affine" Преобразования, которые включают сдвиг, поворот, масштабирование и другие похожие функции преобразования изображений. При этом прямые линии остаются прямыми, параллельные остаются параллельными, а прямоугольник может превратиться в параллелограмм.
"box" Отдельный случай аффинных преобразований, когда каждая размерность масштабируется независимо.
"composite" Структура двух или более преобразований.
"custom" Преобразование, которое определено пользователем и вызывается с помощью функции imtransform.
"projective" При этом типе преобразований прямые линии остаются прямыми, а параллельные сходятся в одной точке. Эта точка может находиться как в пределах изображения, так и за его пределами.

Использование cp2tform

При использовании функции cp2tform создается TFORM, когда необходимо выполнять такие преобразования, как подгонка данных, например, при полиномиальных преобразованиях.

Примечание. При использовании функции imtransform структура TFORM выполняет двумерные пространственные преобразования. Если изображение содержит больше, чем две размерности, например, RGB изображения, то двумерные преобразования автоматически применяются ко всем двумерным составляющим. Для определения n-мерных преобразований используется функция tformarray.

Выполнение преобразований

После определения типа преобразований в структуре TFORM, существует возможность их выполнения путем вызова функции imtransform.

Рассмотрим пример использования функции imtransform для выполнения проективных преобразований с изображением шахматной доски.

I = checkerboard(20,1,1); figure; imshow(I) T = maketform("projective",,... ); R = makeresampler("cubic","circular"); K = imtransform(I,T,R,"Size",,"XYScale",1); figure, imshow(K)

Различные опции функции imtransform контролируют разные аспекты преобразований. Например, как видно из предыдущего преобразования, отдельные установки должны контролировать количество и размещение копий исходного изображения на результирующем изображении. Также контролируется размер результирующего изображения. В приложении Image Processing Toolbox есть достаточно много примеров с использованием функции imtransform и других похожих функций, которые выполняют различные типы пространственных преобразований.

Линейная фильтрация и проектирование фильтров

Приложение Image Processing Toolbox содержит некоторое число функций, которые проектируют и реализуют двумерную линейную фильтрацию данных изображения. Рассмотри эти вопросы в таком порядке:

Рассмотрим еще некоторые термины, которые также буду в дальнейшем применяться при рассмотрении материала.

Термин Описание
Convolution (свертка) Операция над локальной окрестностью, где каждый результирующий пиксель представляет собой взвешенную сумму исходных пикселей. Вес определяется ядром свертки. С помощью операции свертки можно реализовать такие методы обработки изображений как сглаживание, повышение резкости и усиление границ объектов изображения.
convolution kernel (ядро свертки) Матрица весов, которая используется при выполнении свертки.
Correlation (корреляция) Операция над локальной окрестностью, где каждый результирующий пиксель представляет собой взвешенную сумму пикселей локальной окрестности. Весы определяются ядром корреляции. Понятие корреляции очень тесно связано с понятием свертки.
correlation kernel (ядро корреляции) Для реализации функции корреляции используется весовая функция. Ядра корреляции можно получить с помощью функции проектирования фильтров в Image Processing Toolbox. Ядра корреляции представляют собой ядро свертки, которое повернуто на 180 градусов.
FIR filter (фильтр с конечной импульсной характеристикой, КИХ-фильтр) В приложении существует ряд функций для расчета коэффициентов цифрового КИХ фильтра, в частности, методом Ремеза. Особенностью их использования является то, что исходные данные задаются в виде желаемой АЧХ произвольной сложности.
frequency response (частотная характеристика или частотный отклик) Математическая функция, с помощью которой можно оценивать работу фильтра на различных частотах.
neighborhood operation (операция с использованием значений соседних элементов) Операция, в результате которой значение каждого пикселя вычисляется на основе значений окрестных пикселей. Свертка, методы морфологической обработки и медианная фильтрация являются примерами операций с использованием соседних пикселей.
window method (локальные методы обработки) Методы обработки, при которых учитываются локальные особенности изображения.

Линейная фильтрация

Фильтрация представляет собой технологию модификации или улучшения изображения. Например, существует большое количество фильтров для усиления некоторых особенностей изображения или их удаления. Речь может идти о подчеркивании границ, выделении областей по некоторым признакам (например, цветовым) и т.п.

Как уже отмечалось ранее, существует ряд методов, в которых значения пикселей обработанного изображения вычисляются на основании значений окрестных пикселей. Разница между этими методами состоит в том, каким образом учитываются значения соседних пикселей. Отметим, что на основании значений соседних пикселей можно говорить об особенностях локальных окрестностей изображения.

Линейная фильтрация представляет собой такой вид обработки, при которой значения пикселей обработанного изображения формируются в результате линейных операций над значениями пикселей окрестности исходного изображения.

Поскольку этот вид фильтрации довольно часто применяется при обработке изображений, рассмотрим некоторые вопросы линейной фильтрации более детально, в частности

  • Фильтрация с использованием convolution и correlation.
  • Выполнение фильтрации с использованием функции imfilter и др.

Свертка

Линейная фильтрация изображений может быть реализована с помощью так называемой операции свертки. При реализации этой операции значения результирующих пикселей вычисляются как взвешенная сумма пикселей исходного изображения. Матрица весов называется ядром свертки, она известна еще как фильтр.

Рассмотрим пример. Пусть изображение представляет собой набор пикселей со значениями, представленными в виде матрицы

A =

а ядро свертки представлено таким образом

H =

Рассмотрим пример вычисления результирующего пикселя с координатами (2,4). Для этого необходимо выполнить следующие шаги:

  1. Развернуть ядро свертки на 180 градусов относительно центрального элемента.
  2. Умножить каждое значение веса в матрице свертки на соответствующее значение пикселя в матрице A.
  3. Просуммировать результат умножения.


Корреляция

Операция корреляции очень похожа на операцию свертки в плане реализации. При вычислении корреляции значение результирующего пикселя представляет собой взвешенную сумму окрестных пикселей. Разница состоит в том, что матрица весов перед вычислениями не поворачивается. Рассмотрим аналогичный пример вычисления значения результирующего пикселя (2,4). Исходная матрица изображения и ядро корреляции взяты из предыдущего примера. Для этого необходимо реализовать следующие шаги:

  1. Перемножаем каждое значение веса и на соответствующее значение элемента матрицы исходного изображения.
  2. Суммируем все результаты умножения, которые получены в п.1.

В результате значение пикселя (2,4) будет равно


Вычисление значения результирующего пикселя (2,4)

Рынок мобильных телефонов заполнен моделями с камерами с огромными разрешениями. Встречаются даже относительно недорогие смартфоны с сенсорами разрешением 16-20 Мп. Незнающий покупатель гонится за "крутой" камерой и отдает предпочтение тому телефону, у которого разрешение камеры выше. Он даже и не догадывается, что попадается на удочку маркетологов и продавцов.

Что такое разрешение?

Разрешение камеры - это параметр, который указывает на конечный размер изображения. Он определяет только то, насколько полученное изображение будет большим, то есть его ширину и высоту в пикселях. Важно: качество картинки при этом не изменяется. Фотография может получиться некачественной, но большой из-за разрешения.

Разрешение не влияет на качество. Нельзя было не упомянуть об этом в контексте интерполяции камеры смартфона. Теперь можно переходить непосредственно к сути.

Что такое интерполяция камеры в телефоне?

Интерполяция камеры - это искусственное увеличение разрешения изображения. Именно изображения, а не То есть это специальное программное обеспечение, благодаря которому снимок с разрешением 8 Мп интерполируется до 13 Мп или больше (или меньше).

Если проводить аналогию, то интерполяция камеры подобна или биноклю. Эти устройства увеличивают изображение, но не делают его более качественным или детализированным. Так что если в характеристиках к телефону указана интерполяция, то фактическое разрешение камеры может быть ниже заявленного. Это не плохо и не хорошо, это просто есть.

Для чего это нужно?

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

Буквально 3-4 года тому назад многие производители гнались за количеством мегапикселей и разными способами пытались впихнуть их в свои смартфоны сенсоры с как можно большим числом. Так появлялись смартфоны с камерами с разрешением 5, 8, 12, 15, 21 Мп. Фотографировать они при этом могли как самые дешевые мыльницы, но покупатели, увидев наклейку "Камера на 18 Мп", сразу хотели купить такой телефон. С появлением интерполяции продавать такие смартфоны стало проще из-за возможности искусственно добавить мегапикселей камере. Конечно, качество фото со временем начало расти, но точно не из-за разрешения или интерполяции, а из-за естественного прогресса в плане разработки сенсоров и программного обеспечения.

Техническая сторона

Что такое интерполяция камеры в телефоне технически, ведь весь текст выше описывал только основную идею?

С помощью специального программного обеспечения на изображении "рисуются" новые пиксели. Например, для увеличения изображения в 2 раза после каждой строки пикселей картинки добавляется новая строка. Каждый пиксель в этой новой строке заполняется цветом. Цвет заливки высчитывается специальным алгоритмом. Самый первый способ - залить новую строку цветами, которыми обладают ближайшие пиксели. Результат такой обработки будет ужасным, но зато подобный способ требует минимум вычислительных операций.

Чаще всего используется другой метод. То есть на исходное изображение добавляются новые строки пикселей. Каждый пиксель заливается цветом, который, в свою очередь, вычисляется как среднее значение соседних пикселей. Этот способ дает лучшие результаты, но требует больше вычислительных операций.

Благо, современные мобильные процессоры быстры, и на практике пользователь не замечает, как программа редактирует изображение, пытаясь искусственно увеличить его размер.

Есть много продвинутых способов и алгоритмов интерполяции, которые совершенствуются постоянно: улучшаются границы перехода между цветами, линии становятся более точными и четкими. Неважно, как построены все эти алгоритмы. Сама идея интерполяции камеры банальна и вряд ли приживется в ближайшем будущем. С помощью интерполяции невозможно сделать изображение более детализированным, добавить новые детали или улучшить его каким-либо еще образом. Только в фильмах маленькая размытая картинка после наложения пары фильтров становится четкой. На практике такого быть не может.

Нужна ли вам интерполяция?

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

Так что интерполяция в телефоне - это маркетинговая уловка, которая совершенно не нужна. Она может увеличивать не только разрешение фото, но и стоимость самого смартфона. Не попадайтесь на уловки продавцов и производителей.



Просмотров