дка матриці,
j - індекс стовпця матриці,
C - значення колірного RGB-канала,
n - кількість елементів як в стовпці, так і в рядку матриці.
До значенням центрального пікселя додаємо різницю середнього значення сусідніх пікселів і центрального пікселя:
(3)
Де, NewPix - нове значення центрального пікселя,
Pix - старе значення центрального пікселя,
F - середнє значення сусідніх пікселів, обчислене за формулою (2).
Примітка: в нашому варіанті пікселі, що знаходяться по краях зображення, не обробляються. Щоб обійти даний ефект можна обробляти якимось чином окремий випадок крайніх точок (наприклад, для кута зображення при апертурі 3 брати не 9 точок, а 4, і результат відправляти в цей самий кут або значення крайніх точок дублювати до заповнення квадратної матриці потрібних розмірів).
Відображення зображення
Грунтується на принципі: При відображенні по вертикалі міняємо місцями ліві і праві пікселі, при відображенні по горизонталі - верхні і нижні.
Нам необхідний буфер для зберігання одного пікселя, поки інший піксель не поставимо на місце першого.
Зображення ділиться на дві рівні частини: верхню і нижню (відображення по горизонталі), ліву і праву (відображення по вертикалі).
Алгоритм відображення:
) Верхній (лівий) піксель заносимо в буфер,
) нижній (правий) піксель переносимо на симетричне верхнє (ліве) місце (звідки був узятий піксель в буфер),
) піксель з буфера поміщаємо на нижнє (праве) місце (звідки був перенесений піксель на другому кроці).
Примітка: Як вже було сказано вище, зображення ділиться на 2 рівні частини. Якщо у нас розмір зображення - непарне число, то integer (ціле число) розділити на константу 2 буде в результаті ціле число без залишку (залишок відкинутий). Таким чином, середня смужка пікселів (залишок від ділення) буде відкинутий, при відображенні це смугу пікселів чіпати не будемо, чого нам і не потрібно.
Чорно-білий режим
Кольорове зображення перетвориться в монохромне (чорно-біле).
Монохромне зображення - виконане в одному кольорі; випромінююче один колір або кольору, що розрізняються по яскравості, але не по спектру (у нашому випадку чорно-біле).
Нами реалізовано 2 способу представлення чорно-білого зображення:
1 спосіб (Чорно-білий1): Багатьом відомо, що колір можна задати трійкою RGB. Значення кожного відтінку займає байт, а значить лежить в діапазоні від 0 до 255 включно. (R=0, G=0, B=0 - чорний, R=255, G=255, B=255 - білий).
Визначимо середнє значення всіх відтінків за формулою:
(4)
Де R - (Red) Червоний канал
G - (Green) Зелений канал
B - (Blue) Синій канал
Задамо деякий поріг P з діапазону 0 - 255 (Р=100), і вкажемо правило, що якщо середнє значення всіх відтінків До lt;=порога P, то наш піксель в монохромному зображенні буде чорний, в Інакше піксель буде білим.
2 спосіб (Чорно-белий2): відображення чорно-білого зображення з відтечи сірого різної яскравості ( темно- і світло-сірий )
Для цього необхідно і достатньо визначити середнє значення відтінків за формулою (4)
Це значення заносимо в кожен канал пікселя.
Примітка: При включенні/виключенні цих режимів зберігаються використані фільтри, віддалені/відновлені колірні канали.
Медианная фільтрація
Призначення: Медіанний фільтр - один з видів цифрових фільтрів, широко використовуваний в цифровій обробці сигналів та зображень для зменшення рівня шуму.
Грунтується на принципі: Обробляються дані допоміжної бітової карти зображення (bmp3) двовимірної матрицею (2n + 1) x (2n + 1) ( + 1 - тому що матриця не повинна бути розміром менше 3х3), n - ціле позитивне число, яке визначається коефіцієнт посилення підкреслення (У нашому випадку n=1, тобто матриця 3х3). Елементи матриці сортуються в порядку зростання. Значення знаходиться в центрі матриці поміщається в бітову карту оброблюваного зображення (bmp2) за тими ж координатами, де знаходився центр матриці в bmp3.
Примітка: в нашому варіанті пікселі, що знаходяться по краях зображення, не обробляються. Щоб обійти даний ефект м...