:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте ::
Путь: Графика » Фильтры и спецэффекты. Яркость и контраст » Общие принципы
  Общие принципы фильтрации



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

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

С алгоритмической точки зрения, получение этих эффектов не представляет особого труда. Секрет каждого из них заключен в крошечной матрице чисел, которую называют ядром свертки. Матрица размером 3-на-3 содержит три строки по три числа в каждой. Чтобы преобразовать один пиксел в изображении, вы умножаете значение его цвета на число в центре ядра. Затем вы умножаете восемь значений цветов пикселов, окружающих центральный пиксел, на соответствующие им коэффициенты ядра, суммируете все девять значений, и получаете в результате новое значение цвета центрального пиксела. Этот процесс повторяется для каждого пиксела в изображении, тем самым изображение, как принято говорить, фильтруется. Коэффициенты ядра определяют результат процесса фильтрации. Ядро размывания, например, состоит из совокупности коэффициентов, каждый из которых меньше 1, а их сумма составляет 1. Это означает, что каждый пиксел поглотит что-то из цветов соседей, но полная яркость изображения останется неизменной. (Если сумма коэффициентов больше чем 1, яркость увеличится; если меньше чем 1, яркость уменьшится.) В ядре резкости центральный коэффициент больше 1, а окружен он отрицательными числами, сумма которых на единицу меньше центрального коэффициента. Таким образом увеличивается любой существующий контраст между цветом пиксела и цветами его соседей. Это звучит немного мистически, но цифровое изображение, в конце концов, всего лишь связка чисел. Изменяя эти числа правильным способом, можно прийти к удивительными, возможно, очень полезным спецэффектам.

'На пальцах': в начале создается матpица 3x3:

|a b c|
|d e f|
|g h k|

Затем делаешь цикл по изобpажению: допустим кооpдината текущей точки P(i,j), то в эту кооpдинату записываешь такое значание:

P(i,j) = (
   a*P(i-1,j-1)+b*P(i,j-1)+c*P(i+1,j-1)+
+ d*P(i-1,j) + e*P(i,j) + f*P(i+1,j) +
+ g*P(i-1,j+1)+h*P(i,j+1)+k*P(i+1,j+1) ) / (a+b+c+d+e+f+g+h+k);