Как сравнить две фотографии на английском языке (FCE). Сравнить картины


Алгоритм быстрого нахождения похожих изображений / Хабр

Недавно наткнулся на статью, размещенную на Хабрахабре, посвященную сравнению изображений «Выглядит похоже». Как работает перцептивный хэш. Так как я сам достаточно долго занимался этой тематикой (являюсь автором программы AntiDupl), то мне захотелось поделиться здесь своим опытом по данному вопросу. В статье я приведу два варианта алгоритма сравнения похожих изображений — базовый и улучшенный. Все они были проверены автором на практике в рамках указанного выше проекта. Изложение мое будет вестись без строгих доказательств, сложных формул и специальной математической терминологии. Надеюсь, что читатели простят меня за это.

Мера схожести изображений

При сравнении похожих изображений первым встает вопрос: что считать мерой схожести изображений? Очевидно, что это величина имеет значение обратное различию изображений друг от друга. Следственно нужно выбрать некую метрику, характеризующую различие изображений друг от друга. Тогда схожими изображениями будут считаться изображения, отличие между которыми меньше некоторого порога. Для изображений с одинаковыми габаритами, обычно такой мерой различия служит среднеквадратическое отклонение пикселей одного изображения от другого. Хотя конечно, нам ни что не мешает выбрать другую метрику, например усредненную абсолютную разность пикселей изображений друг от друга.

Картинки разных размеров

Вопрос несколько усложняется, если нужно сравнить изображения разных размеров. Однако достаточно очевидным решением этой проблемы является приведение всех изображений к одинаковому размеру. Остается выбрать это размер — если выбрать его слишком маленьким, то очевидно, что различия между изображениями тогда будут нивелироваться, и у нас будет много ложно положительных срабатываний. При слишком большом размере неоправданно повышается ресурсоёмкость алгоритма сравнения. Опыт показывает, что наиболее оптимальным является размер приведенного изображения от 16х16 до 64х64. Так же опыт показывает, что цветовые характеристики изображения оказывают гораздо меньшее влияние на визуальные ощущения схожести изображений по сравнению с яркостными, потому их можно отбросить.

Основные шаги

Итак, простейший вариант алгоритма сравнения похожих изображений будет включать в себя следующие шаги:
  1. Приведение всех изображений к одному размеру (возьмем для определенности размер 32х32).
  2. Отбрасыванию цветовой информации (преобразование в серое изображение).
  3. Нахождение среднеквадратической разности для каждой пары уменьшенных серых изображений.
  4. Сравнение полученной среднеквадратической разности с некоторым порогом.
Здесь порог определяет меру схожести изображений. Так если выбрать порогом 0%, то алгоритм найдет только полностью идентичные изображения. При 5% пороге алгоритм сможет найти также визуально похожие изображения, которые могут различаться разрешениям, качеством сжатия, наличием мелких надписей, кропом и т.д. при незначительном количестве ложных срабатываний. При пороге выше 10%, как правило, количество ложных срабатываний может превышать число положительных срабатываний. Несомненно, данный алгоритм в том или ином варианте должен быть реализован в любой программе, осуществляющей поиск похожих изображений. Вариации обычно касаются способа получения уменьшенного изображения, размеров уменьшенного изображения и способов его квантования по цветовой палитре, выбора метрики, определяющей степень различия изображений.

Недостатки базового алгоритма

К недостаткам данного алгоритма, можно отнести его плохую чувствительность при сравнении слабо контрастных изображений, а также изображений без крупномасштабных особенностей (контурные рисунки, изображения текста). Слабая чувствительность объясняется тем, что при уменьшении исходного изображения до размера 32х32, как правило все такие изображения становятся не различимыми друг от друга. Также недостатком данного подхода можно считать квадратическую зависимость времени исполнения алгоритма в зависимости от общего числа изображений, так как нужно провести сравнение для каждой пары изображений. Так для сравнения пары отнормированных изображений друг с другом алгоритму нужно выполнить порядка 10^3 арифметических операций, то для тысячи изображений это уже порядка 10^9 операций, а для миллиона изображений — 10^15 операций. Конечно не у каждого пользователя есть коллекции изображений с миллионом картинок, но даже для сравнения 100 тысяч изображений (что не является такой уж редкостью для фотолюбителей) нам требуется выполнения порядка 10^13 операций, что может занять существенное время даже на современном железе. Как уже было сказано, у данной базовой реализации алгоритма две проблемы — невысокая точность на изображениях без крупномасштабных особенностей и квадратичная зависимость времени исполнения от общего числа изображений. Первая проблема достаточно специфична и характерна для довольно узкого круга изображений, потому далее мы сосредоточимся на решении второй проблемы. Очевидно, что данный алгоритм хорошо распараллеливается и векторизуется. Однако, в рамках данной статьи мне хотелось бы остановиться не на программной, а на алгоритмической оптимизации данного алгоритма.

Соотношение сторон

Визуально одинаковые изображения, как правило, обладают близкими соотношениями ширины и высоты. Отсюда логичный вывод — сравнивать только изображения с близкими соотношениями сторон. На практике, большинство изображений в одной коллекции, как правило, имеет одинаковое соотношение сторон (например — 3:4), но имеет разную ориентацию (вертикальную или горизонтальную). Таким образом, мы получаем два изолированных класса изображений, которые не обязательно сравнивать друг с другом. Приблизительное ускорение алгоритмов от этого факта — около двух раз.

Предварительное сравнение

Первый самый очевидный шаг: если мы один раз уменьшили изображение, то почему бы не сделать это снова? Делаем из картинки 32х32 картинку размером 4х4, где каждая точка уменьшенного изображения представляет собой усредненную яркость соответствующей части исходного изображения размером 8х8. Можно математически строго доказать, что среднеквадратическая разность для этого уменьшенного изображения будет не больше, чем среднеквадратическая разность исходного изображения. Следовательно, мы можем путем предварительного сравнения уменьшенных изображений размером 4х4 создать своеобразный фильтр, который будет отсеивать большую часть кандидатов на полноценное сравнение (при условии, что в выборке большая часть изображений относительно уникальны). Таким несложным приемом можно достичь, как несложно подсчитать, практически 50-и кратного ускорения. Однако, очевидно, что чем выше порог, с которым мы сравниваем изображения, тем меньше эффективность данного фильтра.

Одномерное индексирование изображений

Как известно, поиск в упорядоченном массиве данных может быть осуществлен за время порядка О(ln(N)), в отличие от неупорядоченного, которое требует О(N). Таким образом, если каким-то образом нам удастся упорядочить изображения, то теоретически можно свести квадратичную сложность поиска О(N^2) к квазилинейной — О(N*ln(N)). И так попытаемся создать индекс, с помощью которого мы будем производить сортировку изображений. Для этого берем нашу уменьшенную картинку размером 4х4 и уменьшаем ее еще в два раза до размера 2х2. Из этой картинки легко сформировать первый индекс:

i[0] = (p[0][0] + p[0][1] + p[1][0] + p[1][1])/4,

который представляет собой среднюю яркость нашего изображения. Фактически, это изображение, уменьшенное до размера 1х1. Среднеквадратическая разность исходных изображений, будет не меньше, чем разность их интенсивностей. Таким образом, если порог для сравнения изображений имеет значение t, то все возможные кандидаты на сравнение должны иметь среднюю яркость в диапазоне от i[0] — t до i[0] + t. Фактически, если мы отсортируем все изображения по индексу i[0], то можем проводить сравнение со значительно меньшим числом изображений — 2*t/255. Не сложно подсчитать, что для типичного порога в 5% — имеем теоретический выигрыш в 10 раз. Практически, выигрыш будет меньше, так как статистическое распределение изображений по средней яркости не равномерно в диапазоне [0...255], а имеет колоколообразный максимум вблизи значения 127 и спадает по краям диапазона. Его фактическая ширина, а следственно и практический выигрыш алгоритма от теоретически возможного составляет порядка 70-80%.

Многомерное индексирование изображений

Помимо средней яркости i[0], из изображения размером 2x2 можно построить еще 3 дополнительных индекса:

i[1] = 128 + (p[0][0] — p[0][1] + p[1][0] — p[1][1])/4,

i[2] = 128 + (p[0][0] + p[0][1] — p[1][0] — p[1][1])/4,

i[3] = 128 + (p[0][0] — p[0][1] — p[1][0] + p[1][1])/4,

которые имеют простой физический смысл: индекс i[1] показывает на сколько левая часть изображения ярче чем правая, i[2] — на сколько верхняя часть ярче нижней, а i[3] — на сколько отличаются диагонали изображения. По всем этим индексам можно также отсортировать изображения, как и по первому, причем все возможные кандидаты на сравнение будут лежать в диапазонах от i[j] — t до i[j] + t. Т.е. в четырехмерном пространстве, образованном этими индексами область поиска будет представлять 4-х мерный куб со стороной 2*t и центром с координатами, образованными индексами искомого изображения. Теоретическое ускорение, равно отношению объема этого 4-мерного куба к общему объему индексного пространства и равна (2*t/255)^4 = 1/10000. Практическое ускорение значительно скромнее, так как эффективная ширина распределения изображений по индексам i[1] и i[2] составляет порядка 40-50%, а i[3] — всего 20-30% от максимально возможного. Из-за узкого фактического диапазона, на практике использование последнего индекса часто вообще не целесообразно, потому можно ограничиться первыми 3-мя индексами. Тем не менее практически достижимое ускорение достигает двух порядков (для пороговой разности в 5%).

Основные этапы улучшенного алгоритма

И так, можно обобщить наши рассуждения и привести основные шаги, которые необходимо сделать в рамка алгоритма быстрого сравнения изображений.
  1. Приведение всех изображений к одному размеру (32х32) и отбрасывание цветовой информации.
  2. Нахождение уменьшенного изображения для предварительного сравнения размером 4х4.
  3. Построение n-мерного индекса изображения на основании изображения для предварительного сравнения.
  4. Определение границ области поиска в n-мерном индексном пространстве.
  5. Проверка соотношения сторон у кандидатов из этой области.
  6. Проведение предварительного сравнения изображений с кандидатами прошедшими предыдущий пункт.
  7. Проведение полноценного сравнения изображений с кандидатами прошедшими предыдущие пункты.

Недостатки быстрого алгоритма

В целом эффективность индексирования сильно зависит от порога схожести изображения — при нулевом пороге сложность поиска похожих изображений приближается к линейной О(N), а при большом пороге к квадратичной О(N^2). Тем не менее, это является значительным прогрессом, так как в базовом варианте алгоритма сложность поиска всегда квадратична О(N^2). Также стоит отметить, что на практике для реализации сортировки по n-мерному индексному пространству приходится организовывать n-мерный массив со списками изображений, лежащих в определенном диапазоне индексов. Что вносит дополнительные накладные расходы и делает неоправданным использование индексирования большой размерности, а также не эффективность такого индексирования для небольших коллекций изображений. В целом, если суммировать все улучшения, которые применяются в улучшенном варианте алгоритма, то получаем выигрыш на 3-4 порядка по сравнению с базовой реализацией. Тесты на больших коллекциях изображений показывают, что это действительно так. Так непосредственно сравнение изображений друг с другом занимает порядка 30 сек на одноядерном процессоре для коллекции 100 тысяч изображений. На практике, скорость сравнения становится несущественным фактором в общем процессе поиска изображений — ведь их еще нужно найти, считать с диска и сформировать уменьшенные изображения (хотя конечно последние два пункта можно выполнять только 1 раз, так как очевидно, что уменьшенные изображения весом всего по 1000 байт целесообразно сохранять для повторного использования).

Надеюсь, что читателей заинтересовало мое изложение. Возможно, даже кому-то показалось полезным. Жду отзывов.

C момента написания данной статьи прошло достаточно много времени. Я решил сделать небольше дополнение к ней. В рамках проекта Simd был написан класс на C++ ImageMatcher, который реализует алгоритм, описанный в данной статье. Приятного использования!

habr.com

Что лучше: фотография или картина?

ohotniki-na-privale

Еще с давних времен, картина считается сильным жанром искусства и творчества. Но сегодня, с появлением фотоаппаратов, жанр фотографий начал вытеснять культуру картин, и составил картинам в целом сильную конкуренцию. По сложности фотографии порой даже превосходят картины, а все потому, что правильно подобрать технику для фотографии, ракурс, свет, и так далее — очень сложный процесс.

С незапамятных времен таким творчеством занимаются художники и картины их довольно разнообразны. Но на картинах часто невозможно изобразить то, что может передать фотография. Сравнивать эти два жанра, возможно, не правильно, т.к. различия тут кардинальные, но мы все же попробуем.

Основные отличия фотографии от картины:

1. Жанр. На картине можно нарисовать различные абстракции, то, чего не может быть в реальной жизни. Художник может нарисовать некоторые элементы и детали именно в таком ракурсе, как это видит он.

2. Стиль. У каждого художника есть свой собственный, неповторимый стиль. Тогда как фотограф работает в принципе во всех возможных: и в фотосессиях, в портретных фотографиях, занимается фотосъемкой спортивных мероприятий и праздников.

3. Простота. Если художник работает в стиле реализм, и рисует картины пейзажей, например, то гораздо целесообразней использовать фотоаппарат. Например, картину нужно рисовать днями, а сфотографировать какой либо пейзаж можно одним нажатием кнопки.

Конечно, жанры эти абсолютно разные, картина и фотография это как вино и коньяк, смысл один — но реализация разная.

deadwork.ru

Как сравнить две фотографии на английском языке (с примером)

ЕГЭ по английскому языку: устная частьЕГЭ по английскому языку за курс средней школы соответствует уровню Upper-Intermediate (B2) по общеевропейской шкале. Задание: сравнить две фотографии на английском языке, которое в этом году входит в устную часть ЕГЭ, частично взято из этого экзамена.

Как описать фотографию на английском языке (стандартное описание) —> ЗДЕСЬ

А в этой статье мы расскажем, как описать и как сравнить две фотографии согласно требованиям FCE и как расширить это описание так, чтобы оно подходило под требования ЕГЭ.

Итак, в устной части ЕГЭ  требуется сравнить две фотографии — задание 4.

Task 4.Study the two photographs. In 1.5 minutes be ready to compare and contrast the photographs:

  • give a brief description (action, location)
  • say what the pictures have in common
  • say in what way the pictures are different
  • say which kind of life you’d prefer
  • explain why

You will speak for not more than 2 minutes. You have to talk continuously.

Согласно требованиям ЕГЭ на сравнение фотографий дается 2 минуты. Что же касается FCE, на такое сравнение надо потратить еще меньше времени — всего 1 минуту. 

Стрелка вниз

Kак сравнить две фотографии по требованиям FCE

1) Описываем первую фотографию / Describing the first picture – 10 secondsLet me see. In the first picture I can see a group of people sitting under a big tree. It looks like summer and everyone looks relaxed.

как сравнить две фотографии на английском языке

2) Описываем вторую фотографию / Describing the second picture – 10 secondsIn the second picture there are a lot of people sunbathing on the beach. In the background we can see lots of apartments. The beach is really crowded.

как сравнить две фотографии на английском языке

3) Сравниваем две фотографии: что общего / Comparing the pictures – 10 secondsObviously, the pictures were taken in the summer time and maybe the common theme is about what people like doing on holidays.

4) Сравниваем две фотографии: чем отличаются / Contrasting the pictures – 10 secondsThe scene in the first picture looks very peaceful. On the other hand, the beach scene looks very noisy and chaotic.

5) Делаем предположения / Speculating — 10 secondsMaybe, the people in the second picture are on a package holiday and normally they live in cities where as the people sitting under the tree live in the country. They could be farmers or something.

Предложения из данного пункта (FCE) вы можете использовать в пунктах 1-4, добавив по одному предложению в каждый.

6) В заключение, выражаем личное мнение / Personal Feelings – 10 secondsPersonally, I’d rather be in the first photo. It looks like a perfect way to spend the summer afternoon. The scene at the beach … Well, it’s my idea of a nightmare. I mean I like going to the beach but I don’t really like crowds.

Данное сравнение идеально соответствует опциям задания 4 (устной части ЕГЭ) за исключением одного момента — времени. Так как, повторюсь, по требованиям ЕГЭ сравнение фотографий  должно занимать 2 минуты. Значит, его нужно немного расширить. Я рекомендую расширить собственно описание фотографий — пункт 1 и пункт 2. Для этого воспользуйтесь стандартным (полным) описанием фотографии .

* * *

Вводные слова и выражения, в том числе выражающие личное мнение:

  1. Let me see. – Дайте подумать.
  2. Well, … — Ну, …
  3. Obviously, … — Очевидно …
  4. I mean … — Я имею в виду …
  5. On the other hand, … — С другой стороны (при сравнении фотографий)

* * *

Слова и выражения для описания и сравнения фотографий:

  1. In the first picture I can see … — На первой картинке я вижу …
  2. In the second picture there are … — На второй картинке находятся …
  3. It looks like … — Похоже на …
  4. The scene looks like … — Сцена выглядит …
  5. Everybody looks like … — Все выглядят …
  6. In the background … — На заднем плане …
  7. In the foreground … — На переднем плане …
  8. The common theme – Общее на фотографиях …
  9. where as — в то время как (сравниваем одну фотографию с другой)
  10. It’s my idea of a … — Это мое представление о …

* * *

При описании фотографий нужно обязательно показать, что владеете продвинутыми грамматическими конструкциями. Поэтому используйте:1) Предложения в пассивном залоге

The pictures were taken in the summer time. — Эти фотографии были сделаны летом.

2) Модальные глаголы в значении предположения

They could be farmers or something. — Они, возможно, фермеры или кто-нибудь в этом роде.

3) Причастия (действительные и страдательные)

In the first picture I can see a group of people sitting under a big tree. — На первой фотографии я вижу группу людей, сидящих под деревом.

In the second picture there are a lot of people sunbathing on the beach.

4) Конструкции предпочтения

I’d rather be in the first photo. — Я предпочел бы быть на первой фотографии.

This entry was posted in Дополнительная практика языка.

englishinn.ru

Живопись для чайников или как распознать автора картины...

 

Живопись для чайников

 

 

Весело и просто о великих художниках.

 

За сотни лет мировая культура подарила нам несметное количество гениальных живописцев. Одна беда — запомнить их всех не представляется возможным. Предоставляем шпаргалку по искусству.

 

  • Если видишь на картине темный фон и всяческие страдания на лицах — это Тициан.

 

 

Живопись для чайников

 

 

Исключение — вот эта голопопая особа без признаков мысли на лице. Уж одну-то можно запомнить. Венера, не Венера, но что-то в ней есть:

 

 

Живопись для чайников

 

 

 

  • Если на картине вот такенные попы и целлюлит даже у мужиков, не сомневайтесь — это Рубенс.

 

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

 

  • Если на картине мужики похожи на волооких кучерявых женщин или просто на итальянских альфонсов — это Караваджо.

 

 

 

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

Женщин он вообще рисовал полтора раза. На следующей картине — женщина. Горгонян Медуза Арутюновна. Почему она похожа на Джонни Деппа — загадка почище улыбки Моны Лизы.

 

 

Живопись для чайников

 

 

 

  • Если на картине много маленьких людишек — Брейгель.

 

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

 

  • Много маленьких людишек + маленькой непонятной фигни — Босх.

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

 

 

 

  • Если все люди выглядят как бомжи ночью при свете тусклого фонаря — это Рембрандт.

 

 

Живопись для чайников

 

 

  • Если к картине можно запросто пририсовать пару толстопопых амуров и овечек (или они уже там есть) — это Буше.

 

Живопись для чайников

 

 

  • Красиво, все голые и фигуры как у культуристов после сушки — Микеланджело.

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

 

 

 

  • Видишь балерину — говоришь Дега. Говоришь Дега — видишь балерину.

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

 

 

 

  • Контрастно, резковато, синевато, и у всех вот такие тощие бородатые лица — Эль Греко.

 

Живопись для чайников

 

 

Живопись для чайников

 

 

 

 

 

 

  • И, наконец, если все, даже тётки, похожи на :) скажите сами :)— это Ян ван Эйк

 

Живопись для чайников

 

 

 

Живопись для чайников

 

 

Все.

 

P.S.: Моне — пятна, Мане — люди.

источник

subscribe.ru

Чем отличается картина от фотографии?

Чем отличается картина от фото?

Начиная диалог с мировой культурой, современный человек не растрачивает усилий для того, чтоб подняться до ее уровня, а, напротив, старается принизить ее до собственного. (кто-то умный)

До изобретения фото живопись рассматривалась как орудие для может быть более четкого отражения окружающего. Живопись числилась тем лучше, чем более достоверно она показывала реальный мир. С возникновением в 1839 году фото, а в 1895 кино осознание живописи значительно расширилось, хотя другие придерживаются узко-функционального дела и на данный момент.

Чем все-таки отличается фото от картины?

Бато Дугаржапов «Рождество».

Фото запечатлевает нам момент, другими словами совсем конкретное, секундное состояние объекта. Живописец же, вроде бы он ни выписывал детали тщательно и правдоподобно – пишет сначала то ОБЩЕЕ, что он лицезреет в модели, другими словами самое свойственное и выразительное.

Потому фото (кроме очень нечасто встречающихся работ фотохудожников) – это иллюстрация, схожая картинке в энциклопедии: вот так, малыши, смотрится белочка, а вот так смотрелся обладатель фотоальбома 20 годов назад, когда его купали в ванночке.

Бато Дугаржапов «Крым».

Современный живописец отказался от копирования природы – это еще лучше и резвее сделает фото и киносъемка. Натурализм задвигает живопись в тупик повторности и банальности. К тому же природу воспроизвести нельзя. Когда зритель принимает только самый поверхностный нюанс картины – передачу инфы «где что стояло», то осознание живописи будет очень обедненным и искаженным.

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

Бато Дугаржапов «Терраса».

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

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

Что такое «алла прима»?

Бато Дугаржапов «Утро».

Если до этого приветствовалась ювелирная манера выписывания деталей до мелочей, когда картина писалась месяцами, а то и годами и потом кропотливо покрывалась лаком, то в 19-20 веке появилось понятие «алла прима» – от латинского «all prima vista» (на 1-ый взор) и значит спонтанную живопись пастозной краской.

Картина готова после первого сеанса. Краски в главном смешиваются на гамме, где кажутся свежайшими и светящимися. Во время письма на пленэре это очень подходящий метод работы.

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

Бато Дугаржапов «Полдень. Лодки».

Чередование вроде бы на 1-ый взор беспорядочных мазков и световых пятен намного эмоциональнее, чем фото и древная вылизанная манера передает движение – игру солнечных пятен на травке, бликов на воде, колыхание листьев и т.д.

К огорчению, совсем одичавший в смысле красочной культуры зритель, лицезрев работы алла прима, написанные размашистыми мазками и полосами, не дает для себя труда – тормознуть и всмотреться, а надувает щеки и, со словами «я тоже так могу намазать», с сознанием собственного приемущества проходит далее в поисках лакированных кудряво-выписанных творений, где никакая работа воображения и сопереживание не необходимы.

Дадим ему уйти, а позже разглядим, к примеру, картину художника Бато Дугаржапова «Пленэр». Что мы лицезреем на этой увлекательной картинке?

Бато Дугаржапов «Пленэр».

Желающие разглядеть, как пошиты башмаки у персонажей – ничего. Зритель же, настроенный на волну осознания, сначала лицезреет много солнечного света. Потом мы лицезреем несколько художниц в летних платьях у мольбертов и бородатого художника в джинсах и с кистями в руке. Потом возникает теплая каменная стенка с освещенными солнцем вьющимися глициниями над ними, голубое небо в просветах листвы, парапет набережной и море за ним. Листва поэтому и не выписана в деталях и прожилках, что она движется, колышется, и свет тоже движется, передвигаются тени и ежеминутно изменяется отсвет от моря вдалеке…

Настроение у картины – совсем феноменальное, она просто испускает свет и позитив. И совместно с тем нельзя указать указкой и объяснить – это вот это, а тут то-то. Это необходимо только узреть, малость отойдя от картины и посмотрев на нее довольно длительно. При этом это только файл, я представляю для себя – как она должна действовать в оригинале!

Бато Дугаржапов «На этюдах».

Аналогично «проявляется» и картина «На этюдах». Поначалу – хаотические пятна солнечного света и отсветы моря. Потом – седой живописец склонился к мольберту. Потом – само море: зияющее море, оно движется, беспокоится, солнечные блики от волн фактически слепят глаза (как это изготовлено – осознать нереально), в море – горы, камешки и лодки, слева снова же вьющееся растение, может быть, виноград.

Неописуемо передана атмосфера горячего утра (а это утро, так как когда солнце стоит высоко, море так не сверкает, оно синеет), красы южного берега и восхищения этой красотой.

Бато Дугаржапов «Южный вечер»

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

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

Бато Дугаржапов «Озеро Комо».

Бато Дугаржапов родился в 1966 году в Чите. Закончил художественную школу в Томске и Столичный муниципальный академический художественный институт им. В.И. Сурикова. Работы художника находятся в личных собраниях Рф, США, Франции, Италии и Испании.

К. Ю. Старохамская

1eva.ru

Сравнение изображений и генерация картинки отличий на Ruby / Хабр

Наверняка вы видели новые режимы просмотра изображений, которые Github выкатил в прошлом месяце. Это действительно изящный способ показать разницу между двумя версиями картинки. В этой статье я попробую объяснить, как можно просто сравнивать изображения с помощью только Ruby и ChunkyPNG. В самом простом варианте поиск отличий сводится к обходу каждого пикселя в первой картинке и проверке, есть ли этот пиксель во второй. Реализация может выглядеть примерно так:require 'chunky_png' images = [ ChunkyPNG::Image.from_file('1.png'), ChunkyPNG::Image.from_file('2.png') ] diff = [] images.first.height.times do |y| images.first.row(y).each_with_index do |pixel, x| diff << [x,y] unless pixel == images.last[x,y] end end puts "pixels (total): #{images.first.pixels.length}" puts "pixels changed: #{diff.length}" puts "pixels changed (%): #{(diff.length.to_f / images.first.pixels.length) * 100}%" x, y = diff.map{ |xy| xy[0] }, diff.map{ |xy| xy[1] } images.last.rect(x.min, y.min, x.max, y.max, ChunkyPNG::Color.rgb(0,255,0)) images.last.save('diff.png') Код: Gist.

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

Работает! В итоговом изображении присутствует рамка вокруг шляпы, которую мы добавили на фотографию и в итоге мы видим, что почти 9% пикселей на фотографии изменили своё значение.

pixels (total): 16900 pixels changed: 1502 pixels changed (%): 8.887573964497042%

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

pixels (total): 16900 pixels changed: 16900 pixels changed (%): 100.0%

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

Чтобы вычислить отличия в цвете, мы будем использовать метрику ΔE* (“Delta E”). Существует три разные формулы для этой метрики, но мы возьмём первую из них (CIE76), потому что она самая простая, а нам не нужно что-то заумное. Метрика ΔE* была создана для цветового пространства LAB, которое максимально соответствует человеческому зрению. В этом примере мы не будет конвертировать цвета в LAB, а просто будем работать в цветовом пространстве RGB (заметьте, это значит, что наши результаты не будут такими точными). Если вам интересно, чем отличаются различные цветовые пространства, посмотрите это демо.

Как и раньше, мы пройдёмся по всем пикселям в изображениях. Если они отличаются, то мы применим метрику ΔE* и сохраним результат в массиве diff. Мы также применим этот результат для вычисления значения серого цвета, которое будет использоваться в конечной сравнительной картинке.

require 'chunky_png' include ChunkyPNG::Color images = [ ChunkyPNG::Image.from_file('1.png'), ChunkyPNG::Image.from_file('2.png') ] output = ChunkyPNG::Image.new(images.first.width, images.last.width, WHITE) diff = [] images.first.height.times do |y| images.first.row(y).each_with_index do |pixel, x| unless pixel == images.last[x,y] score = Math.sqrt( (r(images.last[x,y]) - r(pixel)) ** 2 + (g(images.last[x,y]) - g(pixel)) ** 2 + (b(images.last[x,y]) - b(pixel)) ** 2 ) / Math.sqrt(MAX ** 2 * 3) output[x,y] = grayscale(MAX - (score * MAX).round) diff << score end end end puts "pixels (total): #{images.first.pixels.length}" puts "pixels changed: #{diff.length}" puts "image changed (%): #{(diff.inject {|sum, value| sum + value} / images.first.pixels.length) * 100}%" output.save('diff.png') Код: Gist.

Теперь мы получили более точную картину отличий. Если посмотреть на результат, то увидим, что изменилось менее 3% фотографии.

pixels (total): 16900 pixels changed: 1502 image changed (%): 2.882157784948056%

Снова, мы сохраняем результат — и в этот раз он уже показывает отличия в оттенках серого. Более сильные изменения имеют более тёмный цвет.

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

pixels (total): 16900 pixels changed: 16900 image changed (%): 5.4418255392228945%

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

Github использует режим тональной разницы, который знаком по фоторедакторам, таким как Photoshop. Это довольно простой метод. Мы обходим каждый пиксель в двух изображениях и вычисляем их разницу по каналам RGB:require 'chunky_png' include ChunkyPNG::Color images = [ ChunkyPNG::Image.from_file('1.png'), ChunkyPNG::Image.from_file('2.png') ] images.first.height.times do |y| images.first.row(y).each_with_index do |pixel, x| images.last[x,y] = rgb( r(pixel) + r(images.last[x,y]) - 2 * [r(pixel), r(images.last[x,y])].min, g(pixel) + g(images.last[x,y]) - 2 * [g(pixel), g(images.last[x,y])].min, b(pixel) + b(images.last[x,y]) - 2 * [b(pixel), b(images.last[x,y])].min ) end end images.last.save('diff.png') Код: Gist.

Используя этот метод, сравнение двух фотографий слева выдаёт картину отличий на изображении справа, чётко показывая изменения:

Поскольку цвета сравниваются по каналам (R,G и B) вместо одного цвета, то возвращается три значения. Это значит, что результирующая картинка цветная, но такое сравнение отдельно по каждому каналу может негативно отразиться на точности результата.

habr.com


Смотрите также

Evg-Crystal | Все права защищены © 2018 | Карта сайта