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



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

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

С алгоритмической точки зрения, получение этих эффектов не представляет особого труда. Секрет каждого из них заключен в крошечной матрице чисел, которую называют ядром свертки. Матрица размером 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);