«национальный исследовательский томский политехнический университет»
4.3.Методы обработки изображений
Часто в компьютерной графике возникает задача обработки изображений. Обработка, как правило, заключается в наложении на изображение каких-либо эффектов – это размытие, резкость, деформация, шум и т. д., а также в регулировке уровня яркости и контраста.
4.3.1.Яркость и контраст
Яркость и контраст являются субъективными характеристиками изображения, воспринимаемыми человеком.
Яркость (brightness) представляет собой характеристику, определяющую то, на сколько сильно цвета пикселей отличаются от чёрного цвета. Например, если оцифрованная фотография сделана в солнечную погоду, то ее яркость будет значительной. С другой стороны, если фотография сделана вечером или ночью, то её яркость будет невелика.
В цветовом пространстве RGB , яркость можно рассматривать как среднее арифметическое μ красного, зеленого и синего цвета координаты. В цветовых моделях как HSB или HSV значение яркости указано на прямую.
Контраст (contrast) представляет собой характеристику того, насколько большой разброс имеют цвета пикселей изображения. Чем больший разброс имеют значения цветов пикселей, тем больший контраст имеет изображение.
По аналогии с терминами теории вероятностей можно отметить, что яркость представляет собой как бы математическое ожидание значений выборки, а контраст – дисперсию значений выборки.
Яркость и контраст могут рассматриваться не только для всего изображения, но и для отдельных фрагментов. Таким образом, возникают понятия локальной яркости и локального контраста.
Часто требуется изменить яркость или контраст изображения. Рассмотрим функцию, областью определения и значений которой являются значения цветовых компонент в модели RGB. Аргументом функции является цвет пикселя исходного изображения. Значение функции представляет собой цвет пикселя обработанного изображения. Для изменения яркости/контраста функция применяется для каждого пикселя изображения.
Для нормализации выходных значений функции (они должны принадлежать отрезку [0, 1], как для каждого компонента модели RGB) используется так называемая арифметика с насыщением. В арифметике с насыщением при возникновении переполнений или заёмов фиксируется наибольшее представимое или наименьшее представимое значения соответственно. Например, если в результате преобразования оказывается, что значение какого-либо компонента модели RGB меньше 0, то берётся значение, равное 0. На практике же каждый элемент матрицы изображения с 16777216 цветами представляет собой 24-битное значение, где каждый компонент модели RGB представлен 8-ю битами. Поэтому вместо интервала [0, 1] используется интервал [0, 255].
Если яркость и контраст изображения никак не меняются в процессе преобразования, то функция имеет график, представленный на Рис. 4., а. Из рисунка видно, что функция в этом случае просто передаёт на выход значение своего аргумента.

a б в
Рис. 4.. Графики яркости
Яркость для рассматриваемой функции представляет собой сдвиг прямой линии в вертикальном направлении. Яркость изображения увеличивается пропорционально сдвигу прямой. Если прямая сдвигается вверх (Рис. 4., б), яркость изображения увеличивается, а если прямая сдвигается вниз (Рис. 4., в) – уменьшается.
Поскольку используется арифметика с насыщением, то при установке определённой яркости изображения либо оно полностью окажется засвеченным, либо полностью затемнённым.
При использовании преобразования контраста прямая линия меняет свой наклон. При увеличении контраста изображения (Рис. 4., а) наклон прямой увеличивается, при уменьшении контраста – уменьшается (Рис. 4., б). При этом сдвиг прямой в горизонтальном направлении означает, что помимо контраста изменяется и яркость изображения.

а б
Рис. 4.. Графики контрастности
Комбинации наклона и сдвига прямой позволяют одновременно изменять и яркость, и контраст изображения. Например, на Рис. 4. представлен график функции, усиливающей контраст и увеличивающей яркость изображения.

Рис. 4.. Увеличение яркости и контрастности
Преобразование яркости/контраста может быть применено и к отдельным компонентам модели RGB, например к компоненту красного цвета. Тогда яркость/контраст будут изменяться только для красного компонента, а для других компонент они останутся неизменными. Более того, можно задавать различные преобразования яркости/контраста одновременно для каждого компонента модели RGB.
4.3.2.Масштабирование изображения
Масштабирование изображения позволяет сжать или растянуть его по горизонтали и/или вертикали. При этом изменяется ширина и/или высота изображения. Для масштабирования задаются масштабные коэффициенты – то, насколько нужно сжать/растянуть изображение по горизонтали или вертикали. Масштабные коэффициенты могут задаваться в нормализованной, процентной или непосредственной форме. В нормализованной форме за единицу принимаются размеры исходного изображения. Значения меньше единицы указывают на сжатие изображения, значения больше единицы – на растяжение. В процентной форме нормализованные значения умножаются на 100 %. В непосредственной форме новые размеры по горизонтали и вертикали задаются в виде количества пикселей по тому или другому измерению.
Возникает вопрос о том, каким образом определять цвета при изменении размеров изображения. Существует два основных подхода к этой проблеме:
Цвет пикселя в масштабированном изображении принимается равным цвету ближайшего к нему пикселя исходного изображения.
Использование интерполяции. В этом случае цвет пикселя масштабируемого изображения вычисляется, как значение некоторой интерполирующей функции от цветов соседних пикселей в исходном изображении.
При использовании билинейной интерполяции цвет вычисляется, как взвешенная сумма ближайших четырёх пикселей исходного изображения (при увеличении) или как взвешенная сумма группы пикселей (при уменьшении).
Первый подход достаточно прост, но не всегда даёт приемлемое качество обработанного изображения. Например, если новый размер намного больше старого, то возникает блочная структура изображения, т. е. каждый пиксель исходного изображения соответствует квадратной области пикселей одного и того же цвета в обработанном изображении. Эта аномалия представлена на Рис. 4..
С другой стороны, если новый размер намного меньше старого, то при масштабировании одному пикселю обработанного изображения соответствует группа пикселей исходного изображения, причём в процессе масштабирования фактически выбирается случайный пиксель из этой группы.

Рис. 4.. Некорректное увеличение
Подход, использующий интерполяцию, позволяет достичь более высокого качества изображения, но более сложен в реализации. Обычно используется билинейная или бикубическая интерполяция. Бикубическая интерполяция позволяет получить изображение с более высоким качеством, чем билинейная интерполяция. Однако следует заметить, что при дальнейшем повышении порядка интерполяции качество получаемого изображения может улучшаться незначительно.
Приведем простейшую формулу, которая позволяет определить ближайший пиксель исходного изображения (без использования интерполяции):
Cnew[i][j] = Cold [k1 · i] [k2 · j], где




Параметр W определяет размер изображения по горизонтали, измеряемый в пикселях. Параметр H определяет размер по вертикали. Параметры i и j определяют соответственно строку и столбец матрицы изображения и изменяются в пределах высоты и ширины изображения соответственно.
4.3.3.Преобразование поворота
Преобразование поворота, также как и при рассмотрении плоских геометрических объектов, позволяет поворачивать исходное изображение на заданный угол. Поворот осуществляется вокруг центра изображения. При этом возможны два варианта поворота:
1. Области изображения, вышедшие за его границы при повороте отсекаются, а незаполненные части заполняются каким-либо цветом.
2. Рассчитывается новый размер изображения на основе угла поворота таким образом, чтобы повёрнутое изображение целиком поместилось в новые размеры. Незаполненные части изображения также заполняются каким-либо цветом.
В любом случае для расчёта преобразования поворота может быть использована следующая формула:
Cnew[i][j] =





В этой формуле параметр C определяет цвет, которым заполняются пустые участки изображения. Параметр φ определяет угол поворота по часовой стрелке в радианах.
Приведённая формула округляет преобразованные координаты. Однако можно использовать и билинейную интерполяцию, когда цвет пикселя вычисляется как взвешенная сумма цветов четырёх соседних пикселей.
страница 1 ... страница 7страница 8страница 9страница 10страница 11 ... страница 13страница 14
скачать
Другие похожие работы: