Pull to refresh
  • by relevance
  • by date
  • by rating

Введение Стивена Вольфрама в язык Wolfram

Programming
Translation
Привет, Хабр! Полагаю, многие слышали о системе Wolfram Mathematica, однако, судя по тому что на Хабре нет даже отдельного хаба, посвященного технологиям Wolfram, не многие осознают их реальный потенциал. Но, похоже это скоро изменится, так как Wolfram близки к окончательному релизу технологии, которую они разрабатывали 30 лет. Она называется Wolfram Language и представляет собой совершенно новую парадигму программирования, намного более мощную, чем все существующие.
Читать дальше →
Total votes 91: ↑82 and ↓9 +73
Views48.6K
Comments 116

Стивен Вольфрам: “Внедряя вычисления повсюду”

Wolfram Research corporate blog
Sandbox
Перевод доклада Стивена Вольфрама, прочитанного им на фестивале SXSW 2014.
Оригинальный текст вы можете найти здесь.

sw-sxsw.png

Две недели назад я выступал с речью на конференции SXSW в Остине, Техас. Эта статья является немного доработанными тезисами доклада (это конспект текста, включающий демонстрации, от которых пришлось отказаться в процессе выступления):

Итак, на этот час запланировано довольно много.

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

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

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

Можно сказать, я гонялся за этой идеей 40 лет. Я уже давно балансирую на стыке науки и технологий — создаю все более масштабные строительные блоки и строю из них все более высокую башню. И каждые несколько лет мне удается увидеть куда она будет расти дальше. По-моему, получается здорово. Однако, в последние несколько лет случилось нечто удивительное — своего рода великая унификация, которая ведет к технологическому Кембрийскому взрыву. И сегодня я впервые вам частично её представлю.

Но, для начала, немного истории. 40 лет назад я был 14-летним юнцом, который впервые прикоснулся к компьютеру (он тогда еще был размером со стол). Я не часто использовал его как нечто фундаментальное, но пытался с его помощью понять некоторые вещи из физики, которая меня по-настоящему интересовала. В тот момент я открыл для себя некоторые важные вещи, которыми пользуюсь до сих пор. Но сейчас я понимаю что самая важная вещь, которую я понял тогда относилась вовсе не к физике: чем лучше инструменты, которые мы используем, тем глубже мы сможем копнуть. Мне не очень хорошо давалась “математика на бумаге”, а в то время это было серьезной проблемой для тех, кто хотел заниматься физикой. Однако, я осознавал, что расчеты можно делать на компьютере и начал создавать инструменты для этого. Очень скоро я с моими программами был лучше всех в математических расчетах для физики.

Вернемся в 1981-й год. В этом году случилось нечто восхитительное для 21-летнего ученого — я превратил все это в свой первый продукт и свою первую компанию. Важно то, что это заставило меня осознать — программные продукты могут стимулировать интеллектуальное мышление. Предстояло выяснить как создать язык для математических расчетов на компьютере, и мне потребовалось многое понять о вычислениях чтобы достигнуть цели. А потом я снова погрузился в основы науки уже с использованием созданных инструментов.

В итоге, я понял, что в то время как с математикой все хорошо, её фундаментальная концепция нуждается в обобщении. Я начал изучать всю вселенную всевозможных формальных систем, которая по сути является всеобщей вычислительной вселенной возможных программ. Я ставил небольшие эксперименты — как бы направлял свой вычислительный телескоп на части этой вселенной и смотрел что там было. То что я увидел, было потрясающе. Ниже я покажу вам несколько простых программ.
Читать дальше →
Total votes 107: ↑102 and ↓5 +97
Views37.3K
Comments 56

Игра 2048 в Wolfram Mathematica

ProgrammingGame developmentFunctional Programming
Translation
Перевод поста 2048, Wolfram Style, написанного для официального блога компании Wolfram Research Дэном Фортунато, младшим программистом Wolfram|Alpha Parser Content.

Архив с файлом Wolfram Mathematica, в котором содержится код, вы можете скачать здесь.

2048-Game-In-Wolfram-Mathematica_43.gif

Если в течение последних нескольких недель вы выходили в интернет, то вы вряд ли могли не встретиться с игрой под названием 2048, разработанной Габриэлем Чирулли. Будучи основанной на похожих играх, 1024! от Veewo Studio и THREES от Ашера Воллмера, эта игра имеет простую механику, которая затянет вас надолго — перемещайте по полю фишки, на которых написаны степени числа 2 и соединяйте их попарно, чтобы получить ещё более высокие степени. Главная цель игры — получить фишку 2048. Достаточно сложно объяснить, насколько в действительности интересна и увлекательна эта игра, поэтому я рекомендую вам самим сыграть в нее.

Чтобы отдать должное этой простой игре (и в честь всех математических игр!), я решил продемонстрировать всю мощь Языка Wolfram, используя его, чтобы разработать нашу собственную версию 2048. Начнём!
Читать дальше →
Total votes 39: ↑29 and ↓10 +19
Views21.7K
Comments 6

Вторая российская конференция «Wolfram технологии»: рассказ и материалы

Wolfram Research corporate blog


3 июня 2014 г. в Санкт-Петербургском государственном экономическом университете (СПбГЭУ) прошла уже вторая по счету Российская конференция Wolfram технологии, в которой мне посчастливилось участвовать в качестве одного из докладчиков.

К слову сказать, первая конференция проходила там же годом ранее, 13 июня 2013 г., причем открывал ее лично сам Стивен Вольфрам, CEO компании Wolfram Research (выступления и презентации той конференции вы можете найти здесь). Первая конференция была знаковым событием, ее посетило множество людей и на протяжении 3-х с лишним часов участники конференции не отпускали Стивена, задавая ему все новые и новые вопросы, касавшиеся то Wolfram|Alpha, то фундаментальных основ Mathematica, то темы, которой Стивен Вольфрам занимается очень давно — клеточных автоматов.

Думаю ни для кого не секрет, что компания уже скоро выпустит 10-ю версию системы Mathematica, которая, по моему глубокому ощущению, станет если уж не самым, то одним из самых мощных скачков Mathematica. Сейчас, когда я пишу эти строки, код системы уже заморожен и уже во всю ведется подготовка к релизу. О языке Wolfram, который является также языком всех продуктов Wolfram, на Хабрахабре уже шла речь, скажем в переводе на русский язык выступления Стивена на SXSW 2014, также этому языку была посвящена и большая доля конференции. Думаю многим будет интересно также, что сейчас стартовал конкурс "Выиграй Mathematica 10", победитель которого получит 10-ю версию сразу после релиза.

На картинке в начале этой заметки (см. Дополнение 1 в конце) вы можете видеть те продукты Wolfram, о которых на ней шла речь. Это, собственно, Язык Wolfram, его главные носители — Mathematica 10, Облако Wolfram и Wolfram|Alpha, а также ряд других продуктов, таких как CDF, SystemModeler и Raspberry Pi. Ссылка к Raspberry идет пунктиром потому что это, безусловно, не продукт Wolfram, но с ноября 2013 г. язык Wolfram и Mathematica предустановлены на этих одноплатных компьютерах, причем это бесплатно.
Читать дальше →
Total votes 22: ↑17 and ↓5 +12
Views7.6K
Comments 0

Как выигрывать в игре камень-ножницы-бумага? (реализация оптимальной стратегии в Wolfram Mathematica)

Wolfram Research corporate blogProgrammingMathematics
Translation


Перевод поста Джона Маклуна (Jon Mcloone, директор департамента международного бизнеса и стратегического развития Wolfram Research). Оригинал поста: How to Win at Rock-Paper-Scissors
Скачать пост в виде документа Mathematica

С точки зрения математики игра камень-ножницы-бумага (см. Дополнение 1 в конце) не является особо интересной. Стратегия равновесия Нэша очень проста: случайно и с одинаковой вероятностью выбирайте из трех вариантов, и при условии проведения большого числа игр ни вы, ни ваш соперник не сможете одержать победу. Хотя, при обсчитывании стратегии при помощи компьютера всё ещё возможно выиграть у человека после большого числа игр.
Читать дальше →
Total votes 67: ↑57 and ↓10 +47
Views71.9K
Comments 22

Wolfram Programming Cloud (Облако Программирования Wolfram) теперь доступно

Wolfram Research corporate blogProgrammingMathematics
Translation

Перевод поста Стивена Вольфрама (Stephen Wolfram, CEO Wolfram Research).
Оригинал поста: Wolfram Programming Cloud Is Live!


Двадцать шесть лет назад в этот самый день мы выпустили Mathematica 1.0. И я очень рад, что сегодня тоже станет историческим днем: мы выпускаем Wolfram Programming Cloud (Облако программирования Wolfram) — первый объект в линейке продуктов, основанных на новом Wolfram Language (Языке программирования Wolfram).

Wolfram Programming Cloud
Читать дальше →
Total votes 46: ↑39 and ↓7 +32
Views21.2K
Comments 19

Выпущена система Mathematica 10, содержащая 700+ новых функций и невероятное количество R&D

Wolfram Research corporate blog
Translation

Перевод статьи Стивена Вольфрама, о системе Wolfram Mathematica 10, которая вышла 9 июля 2014 г.
Оригинальный текст вы можете найти здесь.
Выражаю огромную благодарность тем, кто помог мне перевести эту статью: Владиславe Глаголеву (Himura), Сильвии Торосян и Рукк Наталии Самуиловне.


Этим летом мы выпускаем поистине огромный спектр новых технологий. Две недели назад мы запустили Wolfram Programming Cloud. А сегодня, я рад представить вам в значительной степени обновленную версию Mathematica: Mathematica 10.

Wolfram Mathematica 10

Мы выпустили Mathematica 1 чуть более 26 лет лет назад, 23 июня 1988 г. С тех пор мы постоянно и систематично делали Mathematica еще больше, мощнее, шире, и глубже. Но Mathematica 10, выпущенная сегодня, представляет собой пожалуй самый большой скачок в функциональности за всю историю Mathematica.
Читать дальше →
Total votes 72: ↑65 and ↓7 +58
Views16.6K
Comments 21

Вычисляемые знания и будущее чистой математики

Wolfram Research corporate blogProgrammingMathematics
Sandbox


Перевод поста Стивена Вольфрама (Stephen Wolfram) "Computational Knowledge and the Future of Pure Mathematics"
Выражаю огромную благодарность тем, кто помог мне сделать этот перевод: Владиславу Глаголеву (Himura), Илье Марчевскому, Сергею Шевчуку (opckSheff) и Анне Коваленко.


Введение


Уже больше века, каждые 4 года в некоторой точке мира проходит Международный конгресс математиков (ICM). В 1900 году, именно на нем Давид Гильберт представил свою знаменитую коллекцию проблем математики, которая по сей день задает направление исследования математикам всего мира.

В этом году ICM проходит в Сеуле, и сегодня я отправляюсь туда. Однажды я уже бывал на ICM — в Киото в 1990 году. Тогда системе Mathematica было всего 2 года, и математики ещё только начинали привыкать к ней. Многие уже повсеместно её использовали, но на ICM были и те, кто говорил «Я занимаюсь чистой математикой. В чем, интересно, мне может помочь система Mathematica

Vychisljaemye-znanija-i-budushhee-chistoj-matematiki_1.gif
Читать дальше →
Total votes 85: ↑80 and ↓5 +75
Views62.4K
Comments 45

Суммирование расходящихся рядов методами Абеля, Бореля, Чезаро и Дирихле

Wolfram Research corporate blogMathematics
Translation

Перевод поста Давендра Кападия (Devendra Kapadia) "The ABCD of Divergent Series."
Выражаю благодарность за помощь в переводе Андрею Дудину.


Какова сумма всех натуральных чисел? Интуиция подсказывает, что ответ — бесконечность. В математическом анализе сумма натуральных чисел является простым примером расходящегося ряда. Тем не менее, математики и физики сочли полезным придать дробные, отрицательные и даже нулевые значения суммам таких рядов. Цель моей статьи — желание отодвинуть завесу тайны, окружающую результаты суммирования расходящихся рядов. В частности, я буду использовать функцию Sum (функция поиска частичных сумм, рядов и т. п. в Mathematica), а так же другие функции в Wolfram Language для того, чтобы объяснить в каком смысле стоит рассматривать следующие утверждения:

Summirovanie-rashodjashhihsja-rjadov_1.gif


Важность обозначений формул буквами A, B, C, и D вскоре станет вам понятна.
Читать дальше →
Total votes 60: ↑56 and ↓4 +52
Views43.4K
Comments 30

Компания Wolfram Research открыла сервис Tweet-a-Program: интересных программ на языке Wolfram Language, длина которых не превышает 140 символов

Wolfram Research corporate blogProgrammingFunctional Programming
Translation


В языке Wolfram Language небольшой код может делать крайне много. Используя это, мы сделали сервис, который позволит вам получить от этого удовольствие, сегодня мы открываем его — Tweet-a-Program.

Этот сервис соединяет в себе программы на языке Wolfram Language длиной в одно сообщение твиттера и возможность их автоматической отправки в @WolframTaP. Наш Твиттер-бот запустит вашу программу в Wolfram Cloud (Облаке Wolfram), после чего опубликует результат.

Hello World from Tweet-a-Program: GeoGraphics[Text[Style["Hello!",150]],GeoRange->"World"]
Читать дальше →
Total votes 52: ↑47 and ↓5 +42
Views19.5K
Comments 37

Переход от приближенного решения к точному: задача о разбиении квадрата на 50 подобных остроугольных треугольников

Wolfram Research corporate blogProgrammingMathematics
Translation


Перевод поста Эда Пегга младшего (Ed Pegg Jr) "From Close to Perfect—A Triangle Problem"
Выражаю благодарность за помощь в переводе Андрею Дудину.
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.


В языке Wolfram Language (доступном, скажем, в системе Mathematica) функция RootApproximant позволяет найти замкнутую форму в виде алгебраического числа для некоторого приближённого числа, и эта функция позволила нам превратить приближенное решение задачи о разбиении квадрата на 50 подобных остроугольных треугольников с углами (45°, 60°, 75°) в точное.

Ясно, что квадрат можно разбить на треугольники (триангулировать), например, просто соединив его противоположные вершины. Известно, так же, что квадрат можно разбить на семь подобных треугольников разной площади или на десять остроугольных равнобедренных треугольников (см. рис. ниже). Известны также классические задачи, связанные с разбиением квадрата на восемь остроугольных треугольников (см. рис. ниже), или на двадцать треугольников со сторонами, относящимися друг к другу как Perehod-ot-priblizhjonnogo-reshenija-k-tochnomu-zadacha-o-razbienii-kvadrata-na-50-podobnyh-ostrougolnyh-treugolnikov_1.png. На третьем чертеже (считая сверху) показано разбиение квадрата на подобные треугольники с углами (45°, 60°, 75°), но вы можете с легкостью заметить, что это решение не корректно, так как один из треугольников немного накладывается на другой.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Views15K
Comments 5

Приключения в математическом лесу фрактальных деревьев

Wolfram Research corporate blogProgrammingMathematics
Translation


Перевод поста Bernat Espigulé Pons, «Adventures into the Mathematical Forest of Fractal Trees».
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.


Без сомнения, золотое сечение и в наше время представляется одним из самых таинственных, волшебных и поразительных чисел, которые известны людям: Prikljuchenija-v-matematicheskom-lesu-fraktalnyh-derevev_1.png. (в языке Wolfram Language и системе Mathematica ему соответствует символ GoldenRatio). Как вы увидите из этого поста, это число действительно имеет множество интересных свойств, которые можно исследовать, причём некоторые из них рассматривались ещё в работах учёных Древней Греции, таких как Пифагор и Евклид, другие в работах итальянского математика Леонардо Пизанского, более известного под прозвищем Фибоначчи, или Иоганном Кеплером — астрономом эпохи Возрождения. Хотя это может прозвучать странно, в этом посте я расскажу вам о новых геометрических объектах, связанных с золотым сечением, которые осветили мне путь, когда я пытался отобразить неизвестную ранее область Математического Леса.
Читать дальше →
Total votes 61: ↑58 and ↓3 +55
Views33.8K
Comments 6

Моделирование пандемий с помощью языка Wolfram Language (системы Mathematica 10) на примере лихорадки Эбола

Wolfram Research corporate blogProgrammingMathematicsData visualization
Translation

Перевод поста Виталия Каурова (Vitaliy Kaurov) "Modeling a Pandemic like Ebola with the Wolfram Language".

Выражаю благодарность за помощь в переводе участникам сообщества ВКонтакте Русскоязычной поддержки Wolfram Mathematica: Еве Фрумен, Курбану Магомедову, Глебу Михновцу, Андрею Кротких.

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~100 МБ).


Данные крайне важны для беспристрастного взгляда в будущее, но одни только данные еще не являются прогнозом. Для предсказания развития пандемий, террористических актов, природных катастроф, падений рынков и других сложных явлений нашего мира необходимы научные модели. Один из инструментов борьбы с текущей ужасающей вспышкой лихорадки Эбола — создание компьютерной модели возможного распространения вируса. Понимая, где и как быстро вспышка может проявиться, правительственные структуры смогут организовать эффективные профилактические меры для снижения скорости передачи и, в конечном итоге, остановить эпидемию. Наша цель сейчас: продемонстрировать построение математической модели, описывающей глобальное распространение пандемии на основе реальных данных. Модель применима к любой эпидемии, но мы будем иногда упоминать и использовать данные о текущей вспышке лихорадки Эбола в качестве примера. Результаты не следует рассматривать как реалистичную количественную оценку текущей пандемии вируса Эбола.

EbolaAnimFINAL.gif
Читать дальше →
Total votes 55: ↑49 and ↓6 +43
Views39.3K
Comments 42

Исследование в Mathematica: Бенедикт Камбербэтч успешно пародирует других актеров, но может ли он одурачить компьютер?

Wolfram Research corporate blogProgramming
Translation
Перевод поста Риты Крук (Rita Crook) "Benedict Cumberbatch Can Charm Humans, but Can He Fool a Computer?".

Вышедший на этой неделе, весьма ожидаемый, в прокат фильм "Игра в имитацию" (The Imitation Game) рассказывает о жизни Алана Тьюринга (100-лет со дня рождения которого совпали с 22-м днем рождения системы Mathematica — подробнее см. пост Стивена Вольфрама Happy Birthday, Alan Turing). Центральной темой фильма являются машины Тьюринга. Интересно, что в 2007 году компания Wolfram Research объявила приз за доказательство универсальности 2,3 машины Тьюринга.

Конечно же, промоушн-видео Бенедикта Камбербэтча, в котором он имитирует голоса и поведение других известных актеров многим понравилось. Но мне захотелось выяснить, сможет ли функционал Mathematica из области Machine Learning распознать его голос, или же он сможет «одурачить» и компьютер тоже.
Читать дальше →
Total votes 34: ↑30 and ↓4 +26
Views26.1K
Comments 20

Ресурсы для изучения Wolfram Language (Mathematica) на русском языке

Wolfram Research corporate blogProgrammingAlgorithmsMathematicsData visualization
Tutorial

На протяжении довольно долгого времени я и мои коллеги, участники Русскоязычной поддержки Wolfram Mathematica, занимались разработкой и коллекционированием полностью бесплатных и качественных ресурсов на русском языке, которые позволили бы любому желающему научиться программировать на языке Wolfram Language (Mathematica) самостоятельно.

Думаю, что пришла пора рассказать об этом на Хабрахабре, создав статью о разрабатываемой коллекции ресурсов, которая будет постоянно расширяться и пополняться, и будет служить, по сути, русскоязычным аналогом страницы "Where can I find examples of good Mathematica programming practice?" на сайте Mathematica at StackExchange.com.
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Views98.8K
Comments 11

«Математика – один из видов искусства»: пост к столетию со дня рождения Мартина Гарднера

Wolfram Research corporate blogEntertaining tasksProgrammingGame developmentMathematics
Translation
Tutorial

Перевод поста Эда Пегга Младшего (Ed Pegg Jr) "Martin Gardner’s 100th Birthday"

Я думаю, содержание этого поста будет интересно всем, кто любит математику и ее красоту, всем, кто знаком с замечательными книгами и задачами Мартина Гарднера, а также будет полезно учителям, школьникам и студентам. Все ссылки в данном посте ведут на сайты Wolfram Demonstrations Project (коллекция бесплатных интерактивных демонстраций, созданных пользователями системы Mathematica на языке Wolfram Language с помощью технологии Computable Document Format (CDF), при этом для вас доступны исходные коды всех демонстраций, а значит, вы можете каждую из них скачать, изучить и изменить под себя) и Wolfram MathWorld (крупнейшая и самая авторитетная онлайн-энциклопедия по математике).

Gardner100_1.gif

Читать далее...
Total votes 78: ↑75 and ↓3 +72
Views57.5K
Comments 18

Расширяя полотно картины Ван Гога “Звездная ночь” с помощью языка Wolfram Language (Mathematica)

Wolfram Research corporate blogEntertaining tasksProgrammingImage processing
Translation

Перевод поста Piotr Wendykier "Extending Van Gogh's Starry Night with Inpainting"
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~8 МБ).


Могут ли компьютеры научиться рисовать, как Ван Гог? Определенно да, до некоторой степени! Для этого, подобно художникам-копиистам, алгоритму сначало потребуется взять некоторое оригинальное произведение, а затем он сможет на их основе создать что-то сам. Насколько хорошо он сможет с этим справиться? Пожалуйста, судите сами.

ExtendingVanGoghStarryNightInpainting_1.gif
Вторая премия на фотоконкурсе ZEISS
Читать дальше →
Total votes 117: ↑110 and ↓7 +103
Views75.2K
Comments 36

Поиск наилучшей последовательности просмотра списка 250 лучших фильмов с помощью языка Wolfram Language (Mathematica)

Wolfram Research corporate blogEntertaining tasksProgrammingData visualization

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~76 МБ).

Введение


Некоторое время назад, если быть точным — 515 дней, вышел пост Маттиаса Одисио (Matthias Odisio) под названием “Random and Optimal Mathematica Walks on IMDb’s Top Films” (Случайные и оптимальные блуждания Mathematica по списку 250 лучших фильмов по версии IMDB). В нем рассказывается о том, каким образом можно получить оптимальную последовательность просмотра фильмов из соответствующего списка, основанную на близости жанров фильмов и близости постеров фильмов с точки зрения цвета.
Читать дальше →
Total votes 100: ↑93 and ↓7 +86
Views54.9K
Comments 36

Поиск самых длинных цепочек слов в русском языке с помощью языка Wolfram Language (Mathematica)

Wolfram Research corporate blogEntertaining tasksProgrammingAlgorithmsMathematics

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~5 МБ).

Введение


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

Предположим, что у нас есть несколько последовательных метаграмм, скажем:

мнение-мление-тление-трение-прение-поение-роение-рдение-бдение-биение

они образуют цепь метаграмм, или цепочку слов.

Отсюда проистекает игра под названием цепь слов (word ladder), которую придумал в далеком 1879 году Льюис Кэрролл.

Ясно, что далеко не для каждого начального слова может быть составлена такого рода цепь, а некоторые слова, по-видимому, должны порождать довольно длинные цепи.

В этом посте мы постараемся проанализировать цепочки слов, которые могут быть построены в русском языке, а также найдем цепочки наибольшей длины.
Читать дальше →
Total votes 80: ↑77 and ↓3 +74
Views40K
Comments 24

Создание фотомозаик с помощью языка Wolfram Language (Mathematica)

Wolfram Research corporate blogEntertaining tasksProgrammingAlgorithmsImage processing

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~3 МБ).

Введение


До Нового 2015-го года осталось уже менее суток:

In[1]:=

ImageMosaic_2.png

Out[1]=

ImageMosaic_3.png

Мне хотелось бы поздравить всех с Наступающим Новым 2015-м годом и рассказать о том, как вы можете сделать своим близким необычный подарок в виде фотомозаики, созданной с помощью системы Mathematica 10 и языка Wolfram Language.

Идея фотомозаики в целом довольно проста: создать изображение на основе коллекции других изображений небольшого размера.

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

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

  • Сложный способ: по сути повторяет первый способ за исключением того, что разбиение исходного изображения производится некоторым “адаптивным” алгоритмом на фрагменты различного размера.

Для упрощения рассматриваемой задачи будем создавать мозаику из квадратных миниатюр.
Читать дальше →
Total votes 45: ↑41 and ↓4 +37
Views24.2K
Comments 7