Арифметика изображений

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

Раст­ро­вое изоб­раже­ние можно пред­став­лять как све­тящуюся кар­тинку на экране — это прямо­уголь­ная таб­лица, состо­ящая из ячеек (пик­се­лей). В каж­дой из них хра­нится чис­ло­вой набор $(r;g;b)$, харак­те­ри­зующий яркость трёх базис­ных цве­тов (крас­ный, зелё­ный, синий), из кото­рых скла­ды­ва­ется цвет пик­селя. Целые числа $r$, $g$ и $b$ хра­нятся в виде байтов: каж­дая дво­ич­ная запись состоит из восьми нулей и еди­ниц, поэтому диапа­зон зна­че­ний — от 0 до 255 ($=2^8-1$). Зна­че­ние 0 озна­чает отсут­ствие дан­ного цвета в ком­би­нации, зна­че­ние 255 — яркость цвета мак­симальна. При­меры: $(0; 0; 0)$ — чёр­ный пик­сел, (255; 255; 255) — белый, (255; 0; 0) — крас­ный, $(0; 100; 0)$ — тёмно-зелё­ный, $(200; 200; 0)$ — жёл­тый.

Арифме­ти­че­ские опе­рации над изоб­раже­ни­ями выпол­няются попик­сельно и покомпо­нентно. Для оди­на­ково рас­по­ложен­ных пик­се­лей $(r_1; g_1; b_1)$ и $(r_2; g_2; b_2)$ их сумма равна $(r_1+r_2; g_1+g_2; b_1+b_2)$, а про­из­ве­де­ние равно $\left({\left[\frac{r_1r_2}{255}\right]}; {\left[\frac{g_1g_2}{255}\right]}; {\left[\frac{b_1b_2}{255}\right]}\right)$. В сложе­нии сумма} при­нима­ется рав­ной 255, если она больше этого числа; в опре­де­ле­нии про­из­ве­де­ния квад­рат­ные скобки обо­зна­чают целую часть числа. В общем, при сложе­нии полу­ча­ется более яркая точка, при умноже­нии — менее яркая. Напри­мер, при­бав­ле­ние к кар­тинке белого фона обесцве­чи­вает всю кар­тинку, пре­вращая её в «белое безмол­вие». А если умножить цвет­ную кар­тинку на «чёр­ный квад­рат», то обра­зу­ется квад­рат­ная «чёр­ная дыра».

Арифметика изображений // Математическая составляющая

Непо­сред­ствен­ные результаты при­ме­не­ния вве­дён­ных опе­раций обес­ку­ражи­вают. Взяв зелё­ный тре­уголь­ник ($А$) и крас­ный круг ($B$), в сумме $A+B$ полу­чим жёл­тый лом­тик в пере­се­че­нии. Если взять «по поло­вине изоб­раже­ний» $0{,}5A+ 0{,}5B$, уменьшив вдвое ярко­сти всех состав­ляющих, то тре­уголь­ник и круг по форме сохра­нятся, но изме­нятся по цвету: в пере­се­че­нии фигур будет тём­ное пятно, а допол­няющие части ста­нут свет­лее. В про­из­ве­де­нии $AB$ пере­се­че­ние фигур будет тём­ным, а осталь­ные части сохра­нят ориги­наль­ные цвета.

Арифметика изображений // Математическая составляющая

Но большой класс прак­ти­че­ских задач можно решить «арифме­ти­че­ски», если исполь­зо­вать моно­хром­ные, серые маски — изоб­раже­ния с оттен­ками от чёр­ного до белого. Рас­смот­рим чёрно-белые маски $M_A$ и $M_B$, постро­ен­ные по $A$ и $B$: сами фигуры ста­но­вятся белыми, а белый фон — чёр­ным. Ещё две маски, $\overline{M_A}$ и $\overline{M_B}$ — их «антиподы», чёр­ный и белый меняются местами (вычи­та­ние из белого, инвер­ти­ро­ва­ние).

Арифметика изображений // Математическая составляющая

Умноже­ние изоб­раже­ния $A$ на его маску $M_A$ даёт изоб­раже­ние тре­уголь­ника на чёр­ном фоне, а умноже­ние $B$ на маску $\overline{M_A}$ выре­зает чёр­ный тре­уголь­ник из изоб­раже­ния с кругом. Нако­нец, сумма полу­чен­ных изоб­раже­ний $AM_A+B\overline{M_A}$ — это наложе­ние зелё­ного тре­уголь­ника $A$ на крас­ный круг $B$. Ана­логично, $BM_B+A\overline{M_B}$ — наложе­ние крас­ного круга на зелё­ный тре­уголь­ник.

Арифметика изображений // Математическая составляющая

При­ве­дён­ные маски были чёрно-белыми, но «под­линно» серые маски тоже при­ме­няются. Напри­мер, с их помощью можно сде­лать наложен­ное изоб­раже­ние полу­про­зрач­ным. Две серые маски, линей­ные ком­би­нации чёрно-белых, порож­дают полу­про­зрач­ное наложе­ние тре­уголь­ника на круг: $A(0{,}7M_A+0{,}3\overline{M_B})+B(0{,}7\overline{M_A}+0{,}3M_B)$.

Арифметика изображений // Математическая составляющая

Полез­ные инструменты полу­чаются и при работе только с одним изоб­раже­нием, напри­мер, воз­ве­де­ние в степень — спо­соб уве­ли­чить рез­кость чёрно-белой фотографии.

Арифметика изображений // Математическая составляющая

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

Разворот книги

Книга «Математическая составляющая»
Книга «Математическая составляющая»