Как называется изображение, представляющее сетку пикселей

Обновлено: 26.06.2024

Это руководство взято из книги Дэниела Шиффмана Learning Processing, опубликованной Морганом Кауфманном, © Elsevier Inc., 2008. Все права защищены. Если вы заметили какие-либо ошибки или у вас есть комментарии, сообщите нам об этом.

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

Начало работы с изображениями.

Надеюсь, вам нравится идея типов данных. Вероятно, вы часто их указываете — переменная с плавающей запятой «скорость», целое число «х» и т. д. Все это примитивные типы данных, биты, хранящиеся в памяти компьютера и готовые для нашего использования. Хотя, возможно, это немного сложнее, мы надеемся, что вы также используете объекты, сложные типы данных, которые хранят несколько фрагментов данных (наряду с функциональностью) — например, класс «Ball» может включать переменные с плавающей запятой для местоположения, размера и скорости. как методы для перемещения, отображения себя и т. д.

В дополнение к определяемым пользователем объектам (например, Ball) в Processing есть множество удобных классов, готовых к работе без написания кода. В этом руководстве мы рассмотрим PImage, класс для загрузки и отображения изображения, а также просмотра его пикселей.

Использование экземпляра объекта PImage ничем не отличается от использования определяемого пользователем класса. Сначала объявляется переменная типа PImage с именем img. Во-вторых, новый экземпляр объекта PImage создается с помощью метода loadImage(). loadImage() принимает один аргумент, строку, указывающую имя файла, и загружает этот файл в память. loadImage() ищет файлы изображений, хранящиеся в папке «data» скетча Processing.

Папка данных: как туда попасть?

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

Эскиз → Добавить файл. . .

Эскиз → Показать папку эскиза

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

Обработка принимает следующие форматы файлов для изображений: GIF, JPG, TGA, PNG.

В приведенном выше примере может показаться немного странным, что мы никогда не вызывали «конструктор» для создания экземпляра объекта PImage, говоря new PImage() . В конце концов, в большинстве примеров, связанных с объектами, конструктор необходим для создания экземпляра объекта.

Фактически функция loadImage() выполняет работу конструктора, возвращая совершенно новый экземпляр объекта PImage, сгенерированный из указанного имени файла. Мы можем думать об этом как о конструкторе PImage для загрузки изображений из файла. Для создания пустого изображения используется функция createImage().

Мы также должны отметить, что процесс загрузки образа с жесткого диска в память является медленным, и мы должны убедиться, что наша программа делает это только один раз, в setup() . Загрузка изображений в draw() может привести к снижению производительности, а также к ошибкам «Недостаточно памяти».

После загрузки изображения оно отображается с помощью функции image(). Функция image() должна включать 3 аргумента — отображаемое изображение, координаты x и координаты y. При желании можно добавить два аргумента для изменения размера изображения до определенной ширины и высоты.

Ваш самый первый фильтр для обработки изображений

При отображении изображения вы можете изменить его внешний вид. Возможно, вы хотели бы, чтобы изображение выглядело более темным, прозрачным, голубоватым и т. д. Этот тип простой фильтрации изображения достигается с помощью функции tint() Processing. tint() по существу эквивалент изображения fill() формы, устанавливая цвет и альфа-прозрачность для отображения изображения на экране. Тем не менее, изображение обычно не бывает одноцветным. Аргументы для tint() просто указывают, сколько данного цвета использовать для каждого пикселя этого изображения, а также насколько прозрачными должны быть эти пиксели.

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

Если tint() получает один аргумент, затрагивается только яркость изображения.



Второй аргумент изменит альфа-прозрачность изображения.


Три аргумента влияют на яркость красного, зеленого и синего компонентов каждого цвета.


Наконец, добавление четвертого аргумента к методу манипулирует альфа-каналом (так же, как и с 2). Между прочим, диапазон значений для tint() можно указать с помощью colorMode().


Пиксели, пиксели и еще раз пиксели

Если вы только начали использовать Processing, вы, возможно, ошибочно полагали, что единственным предлагаемым способом рисования на экране является вызов функции. «Нарисуйте линию между этими точками», или «Залейте эллипс красным», или «загрузите это изображение в формате JPG и поместите его на экран здесь». Но где-то каким-то образом кто-то должен был написать код, который переводит эти вызовы функций в установку отдельных пикселей на экране для отражения запрошенной формы. Линия появляется не потому, что мы говорим line(), она появляется, потому что мы окрашиваем все пиксели вдоль линейного пути между двумя точками. К счастью, нам не нужно ежедневно управлять этой низкоуровневой настройкой пикселей. Мы должны поблагодарить разработчиков Processing (и Java) за множество функций рисования, которые заботятся об этом бизнесе.

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

Мы знакомы с идеей, что каждый пиксель на экране имеет положение X и Y в двухмерном окне. Однако массив пикселей имеет только одно измерение, храня значения цвета в линейной последовательности.


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

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

    Эта функция вызывается перед тем, как вы получите доступ к массиву пикселей, говоря: «Загрузите пиксели, я хотел бы поговорить с ними!» Эта функция вызывается после того, как вы закончите работу с массивом пикселей и скажете: «Давай, обнови пиксели, я готов!»

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

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

  1. Допустим окно или изображение с заданными значениями WIDTH и HEIGHT.
  2. Тогда мы знаем, что общее количество элементов массива пикселей равно WIDTH * HEIGHT.
  3. Для любой заданной точки X, Y в окне расположение в нашем одномерном массиве пикселей: РАСПОЛОЖЕНИЕ = X + Y * ШИРИНА.


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

Давайте посмотрим, как это делается.

Введение в обработку изображений

В предыдущем разделе были рассмотрены примеры, в которых значения пикселей задаются в соответствии с произвольным вычислением. Теперь мы рассмотрим, как мы можем установить пиксели в соответствии с найденными в существующем объекте PImage. Вот некоторый псевдокод.

  1. Загрузить файл изображения в объект PImage
  2. Для каждого пикселя в PImage извлеките цвет пикселя и установите этот цвет для отображаемого пикселя.

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

Доступ к этим полям позволяет нам просмотреть все пиксели изображения и отобразить их на экране.

Теперь мы, безусловно, могли бы придумать упрощения, чтобы просто отображать изображение (например, вложенный цикл не требуется, не говоря уже о том, что использование функции image() позволит нам полностью пропустить всю эту работу с пикселями .) Однако в примере 15-7 представлена ​​базовая структура для получения значений красного, зеленого и синего для каждого пикселя на основе его пространственной ориентации (местоположения XY); в конечном итоге это позволит нам разработать более совершенные алгоритмы обработки изображений.

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

Наш второй фильтр изображения, создающий собственный «оттенок»

Всего несколько абзацев назад мы наслаждались расслабляющим сеансом кодирования, раскрашивая изображения и добавляя альфа-прозрачность с помощью удобного метода tint(). Для базовой фильтрации этот метод сработал. Однако метод «пиксель за пикселем» позволит нам разработать собственные алгоритмы для математического изменения цветов изображения. Учитывайте яркость — более яркие цвета имеют более высокие значения красного, зеленого и синего компонентов. Отсюда естественно следует, что мы можем изменять яркость изображения, увеличивая или уменьшая цветовые компоненты каждого пикселя. В следующем примере мы динамически увеличиваем или уменьшаем эти значения в зависимости от горизонтального положения мыши. (Обратите внимание, следующие два примера включают только сам цикл обработки изображения, остальная часть кода предполагается.)

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


Запись в пиксели другого объекта PImage

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

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


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

Но если все, что вам нужно сделать, это установить порог, вот как это сделать:

Уровень II: обработка группы пикселей

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

Начнем с создания нового пикселя из двух пикселей исходного изображения — пикселя и его соседа слева.

Если мы знаем, что пиксель расположен в точке (x,y):

Тогда его левый сосед находится в точке (x-1,y):

Затем мы могли бы создать новый цвет из разницы между пикселем и его соседом слева.

Вот полный алгоритм:


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

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


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

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

Ниже приведен пример выполнения свертки с использованием двумерного массива (см. Главу 13, стр. XX для обзора двумерных массивов) для хранения весов пикселей матрицы 3x3. Этот пример, вероятно, является самым продвинутым примером, с которым мы столкнулись в этой книге, поскольку он включает в себя очень много элементов (вложенные циклы, 2D-массивы, пиксели PImage и т. д.).


Визуализация изображения

Вы можете подумать: "Боже, это все очень интересно, но если серьезно, когда я хочу размыть изображение или изменить его яркость, мне действительно нужно писать код? Я имею в виду, нельзя ли мне использовать Photoshop? " На самом деле то, чего мы здесь добились, — это просто вводное понимание того, чем занимаются высококвалифицированные программисты в Adobe. Однако сила Processing заключается в потенциале интерактивных графических приложений в реальном времени. Нам не нужно жить в рамках обработки «точек пикселей» и «групп пикселей».

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

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


В следующем примере мы берем данные из двухмерного изображения и с помощью методов трехмерного преобразования, описанных в главе 14, визуализируем прямоугольник для каждого пикселя в трехмерном пространстве. Расположение z определяется яркостью цвета. Более яркие цвета кажутся ближе к зрителю, а темные — дальше.

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

Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.

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

Растровая графика возникла в телевизионных технологиях, а изображения построены так же, как изображения на экране телевизора. Растровая графика состоит из набора крошечных пикселей одинакового размера, которые расположены в двумерной сетке, состоящей из столбцов и строк. Каждый пиксель содержит один или несколько битов информации, в зависимости от степени детализации изображения. Например, черно-белое изображение содержит только один бит на пиксель (двоичный бит может находиться в одном из двух состояний; таким образом, один бит может представлять белый или черный цвет); изображение с затенением и цветом обычно содержит 24 бита информации на пиксель — с 2 24 или более чем 16 миллионами возможных состояний на пиксель. 24-битный цвет, известный как «истинный цвет», может реалистично отображать цветные изображения. Количество битов, хранящихся в каждом пикселе, называется глубиной цвета. Количество пикселей на дисплее, называемое разрешением, влияет на то, сколько деталей может быть изображено на изображении. Разрешение часто выражается как произведение количества пикселей в столбце на количество пикселей в строке (например, 800 × 600).

Детальные изображения часто приводят к большому размеру файла, хотя размер файла можно уменьшить за счет сжатия данных. Сжатие может быть как с потерями (что означает, что некоторые данные отбрасываются), так и без потерь (данные не теряются).Популярные форматы растровых файлов включают GIF (формат обмена графикой) и JPEG (объединенная группа экспертов по фотографии), которые являются форматами с потерями, а также BMP (битмап Windows) и TIFF (формат файлов изображений с тегами), которые не содержат потерь.

Несмотря на то, что растровая графика использовалась в 1970-х и 80-х годах, в основном она ограничивалась дорогостоящими графическими рабочими станциями (т. е. высокопроизводительными компьютерами, специально оптимизированными для работы с графикой). По мере улучшения графических возможностей персональных компьютеров в 1990-х годах растровая графика стала широко использоваться. Изображения, полученные с помощью оптических сканеров и цифровых камер, представляют собой растровую графику, как и большинство изображений в Интернете. Широко используемой графической программой для работы с растровыми изображениями является Adobe Photoshop.

Редакторы Британской энциклопедии Эта статья была недавно отредактирована и обновлена ​​Эриком Грегерсеном.

Изображения могут быть представлены несколькими способами. Наиболее распространенным является сетка из маленьких квадратов, называемых пикселями. В очень простом изображении, которое было только черно-белым, мы могли представить каждый пиксель как представленный 0 (черный) или 1 (белый). Таким образом, это изображение:

A face
< /p>

Можно хранить как двоичную строку из 36 бит: 111111101101111111101101100001111111. Чтобы успешно нарисовать изображение из этого шаблона, нам нужно знать, как интерпретировать эти серии двоичных цифр как 6 строк по 6 пикселей (а не 4 строки по 6 пикселей). 9 пикселей), поэтому форматы файлов реальных изображений часто содержат дополнительную информацию, например размер изображения.

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

Используя эту схему, мы могли бы сделать такой заштрихованный круг:

2-битный круг в градациях серого

Для представления этого изображения требуется 72 бита — сетка пикселей 6x6, для каждого из которых требуется 2 бита. Еще раз, чтобы нарисовать изображение из битов, нам нужно знать размеры изображения; но теперь нам также нужно указать количество битов, используемых для каждого пикселя. Эти 72 бита могут представлять изображение 3x6, где каждый пиксель представлен 4 битами (4 бита мы можем представить \(2^4 = 16\) разных оттенков серого).

Шаблон битов имеет только то значение, которое мы ему приписываем.

32 бита могут представлять изображение 4x8 из 1-битных пикселей, или изображение 4x4 из 2-битных пикселей, или последовательность из 4 букв ASCII, или действительно большое двоичное число, или что-то еще.

Что насчет цветов? Помните, биты имеют только то значение, которое мы им приписываем. Мы могли бы интерпретировать 2 бита на пиксель так:

И в итоге получится вот это изображение:

2-битный цветной круг

Если нам нужно более 4 цветов, нам просто нужно больше 2 бит. С 8 битами на пиксель мы можем представить \(2^8 = 256\) разных цветов или оттенков серого. Этого достаточно для черно-белой фотографии, но не позволяет получить тонкие оттенки цвета на фотографии. Для полноцветных изображений обычно используется 24 бита на пиксель, что позволяет использовать \(2^ = 16 777 216\) разных цветов.

Конечно, реальные изображения используют гораздо большее количество пикселей, чем мы видели здесь. Например, 12-мегапиксельная камера снимает изображения размером около 4000x3000 пикселей. Если каждый из этих пикселей хранить как 24-битное значение, это изображение будет состоять из 4000 x 3000 x 24 = 288 000 000 битов информации! Это 36 000 000 байт или примерно 34,3 МБ. Однако, если бы вы посмотрели на файл изображения, созданный этой камерой, вы бы обнаружили, что он намного меньше 34 МБ, даже несмотря на то, что в файле хранится дополнительная информация помимо содержимого каждого пикселя (размеры изображения, количество битов и т. д.). на пиксель и т. д.). Это связано с тем, что изображение было сжато. Наиболее распространенные форматы изображений (gif, jpeg, png) включают некоторую форму сжатия для уменьшения места, необходимого для хранения их информации… тема, о которой мы узнаем подробнее позже.

Самопроверка

В-1. Сколько бит потребуется для изображения 10 x 20 с 8 различными возможными цветами на пиксель? (Подсказка: сколько бит требуется для представления 8 разных цветов)

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

  • Цифровые изображения состоят из крошечных объемов информации.
  • Пиксель – это единица измерения цифрового изображения.
  • Один пиксель соответствует одному цвету.
  • Цвета представлены в шестнадцатеричном формате, RGB и других схемах идентификации.
  • Пиксели идентифицируются по их расположению в координатной сетке.

Учебные заметки

Как компьютеры видят изображения

Компьютеры воспринимают изображения как множество чисел.

  • Изображение разбивается на мельчайшие фрагменты информации: один цвет.
  • Этот цвет представлен числом.
  • Изображение разбивается на пиксели.
  • Каждый пиксель содержит информацию о своем цвете.
  • Поэтому роль пикселя – представлять один цвет.
  • Объедините эти пиксели вместе, чтобы нарисовать изображение с помощью сетки.

Композиция белого света

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

Система кодирования цвета: красный, зеленый, синий –> RGB

Нам нужен способ кодирования цветов, то есть система кодирования цветов. Если вы комбинируете красный, синий и зеленый, вы можете представить широкий спектр цветов. Это называется цветовой схемой RGB.

Пиксель

Один красный пиксель

  • Изображение разбивается на пиксели.
  • Каждый пиксель содержит информацию о своем цвете.
  • Роль пикселя – представлять один цвет.
  • Объедините эти пиксели вместе, чтобы нарисовать изображение с помощью сетки.

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

Десятичный 255 0 0
Восьмеричный 377 0 0
Шестнадцатеричный FF 00 00
Двоичный 1111 1111 0000 0000 0000 0000

Пиксельная сетка

Пиксели собраны в сетку. У каждого есть координаты. Подумайте о системе координат, с которой вы работали в математике. Каковы координаты одного пикселя в сетке? Каждый пиксель определяется своим положением в системе сетки, определяемой (ось x, ось y).

Pixel Grid

Разрешение

Разрешение определяется шириной и высотой изображения. Например, для изображения размером 400 x 400 пикселей разрешение составляет 400 x 400 = 160 000. Это также может быть выражено как 0,16 мегапикселя.

Внешние ресурсы

Если вы внимательно прислушаетесь, то сможете услышать, как в вашем компьютере текут 1 и 0.


Вопросы по цифровым изображениям

В: Что такое пиксель?

A: В цифровых изображениях пиксель (или элемент изображения) – это наименьший элемент информации в изображении. Пиксели располагаются в двумерной сетке, представленной квадратами. Каждый пиксель представляет собой образец исходного изображения, при этом большее количество образцов обычно обеспечивает более точное представление оригинала. Интенсивность каждого пикселя является переменной; в цветовых системах каждый пиксель обычно содержит три или четыре компонента, например красный, зеленый и синий или голубой, пурпурный, желтый и черный.

Слово пиксель основано на сокращении слов pix ("изображения") и el ("элемент").

В: Что такое разрешение изображения?

О: Термин разрешение часто используется для обозначения количества пикселей в цифровых изображениях. Когда количество пикселей называется разрешением, принято описывать разрешение в пикселях набором из двух чисел. Первое число — это количество столбцов в пикселях (ширина), а второе — количество строк в пикселях (высота), например, 640 x 480. Другим популярным соглашением является указание разрешения как общего количества пикселей в изображении, обычно задаваемого как количество мегапикселей, которое можно рассчитать путем умножения столбцов пикселей на строки пикселей и деления на один миллион. Изображение шириной 2048 пикселей и высотой 1536 пикселей имеет общий размер 2048×1536 = 3 145 728 пикселей или 3,1 мегапикселя. Его можно обозначить как 2048 на 1536 или 3,1-мегапиксельное изображение. Другие соглашения включают описание пикселей на единицу длины или пикселей на единицу площади, например пикселей на дюйм или на квадратный дюйм.

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


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

Большие экраны мониторов обычно имеют более высокое разрешение экрана, измеряемое в пикселях.

В: Что такое DPI/PPI?

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

PPI описывает разрешение в пикселях изображения, которое будет напечатано в пределах заданного пространства. Например, можно сказать, что изображение размером 100x100 пикселей, напечатанное в виде квадрата размером 1 дюйм, имеет 100 пикселей на дюйм, независимо от разрешения принтера. При таком использовании измерение имеет смысл только при печати изображения. Для фотографий хорошего качества обычно требуется разрешение 300 пикселей на дюйм при печати.

В: Как определяется размер файла цифрового изображения?

В: Что такое сжатие файлов?

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

Существует два типа сжатия файлов: "с потерями" и "без потерь". Сжатие с потерями фактически изменяет некоторые исходные пиксели, а некоторые детали теряются. Наиболее распространенным форматом сжатия с потерями является JPEG. В то время как исходное изображение JPEG с цифровой камеры в порядке, каждый раз, когда файл сохраняется снова, детали теряются. Если один и тот же файл сохраняется в формате JPEG несколько раз, существенно теряется качество, и его невозможно восстановить. Ценные оригиналы всегда следует сохранять в формате без потерь, таком как TIFF или PSD. Файлы TIFF можно редактировать и сохранять любое количество раз без потери деталей, поскольку сжатие не изменяет пиксели. Компромисс заключается в том, что файлы TIFF не сжимаются так же хорошо, как JPG.

В: В каком формате можно сохранить изображение?

A: Форматы файлов изображений — это стандартизированные средства организации и хранения изображений. Файлы изображений состоят из пиксельных или векторных данных, которые растрируются в пиксели при отображении на мониторе компьютера. Пиксели, из которых состоит изображение, упорядочены в виде сетки (столбцы и строки); каждый пиксель состоит из чисел, представляющих величины яркости и цвета. Включая проприетарные типы, существуют сотни типов файлов изображений. Форматы JPEG, PNG и GIF чаще всего используются для отображения изображений в Интернете. Цифровые камеры обычно сохраняют изображения в формате JPEG, который является форматом с потерями, что означает сжатие изображений для экономии места в памяти и увеличения количества файлов, которые можно поместить на карту памяти или жесткий диск. Другие форматы включают TIFF, PSD, RAW и BMP.

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

A: Каждая цветная рамка представляет собой определенное количество мегапикселей. Цифры вверху и слева — это размеры печати в дюймах при плотности 300 пикселей на дюйм (пикселей на дюйм). Большинство книг и журналов требуют 300 пикселей на дюйм для фотографического качества. Например, на диаграмме показано, что с 3-мегапиксельной камеры можно сделать отпечаток фотографического качества размером 5 x 7 дюймов.

Дюймы при разрешении 300 пикселей на дюйм (числа в цветных прямоугольниках – это мегапиксели)

Обратите внимание, что при удвоении размера отпечатка требуемое количество мегапикселей увеличивается в геометрической прогрессии. Вы можете делать хорошие отпечатки 8 x 10 дюймов с помощью 6- или 8-мегапиксельной камеры, но для получения снимков с истинным фотографическим качеством 16 x 20 дюймов вам потребуется от 24 до 30 мегапикселей. Не верьте заявлениям производителей о том, что вы можете делать отпечатки размером 16 x 20 дюймов с 8-мегапиксельной камеры. Хотя вы, безусловно, можете сделать отпечаток такого размера, это не будет истинным фотографическим качеством при разрешении 300 пикселей на дюйм. Используя программное обеспечение для редактирования изображений, такое как Photoshop, можно «обмануть», добавив пиксели к изображению, чтобы увеличить его размер. Однако четкость изображения не улучшится, так как все новые пиксели будут созданы путем усреднения значений исходных пикселей.

Читайте также: