Pull to refresh
45
0
Send message
Вот ещё хороший цикл статей по занимательной гугологии (рассматриваются большие числа и бесконечности).
Самое большое число — это Utter Oblivion(10^100) по массивной нотации Бауэрса:
он «определил новую функцию, назвав ее Полнейшее Забвение, или по-английски Utter Oblivion(n), которая должна возвращать:
Самое маленькое число, большее чем любое конечное число, которое может быть выражено на языке теории куч с K-Oblivion(10^100) системой символов с использованием n или менее из этих символов.»

scorcher-7.livejournal.com/1818.html
Первоисточник с сайта Бауэрса www.polytope.net/hedrondude/oblivion.htm
Да, они одинаковы. В документации написано, что --staged — это синоним --cached. Вопрос предпочтения.
Я имел в виду про общий случай, не привязываясь к .NET, поэтому написал про runtime. Да, в официальном репозитории грамматики языка программирования Ruby нет. Грамматика Ruby для ANTLR 4 есть здесь
Вы планируете делать анализ других языков? Например, для Ruby есть runtime и target для ANTLR 4.4. Однако в репозиторий последний коммит был сделан 9 месяцев назад.
По поводу runtime C++ в Github есть репозиторий. Вы имели в виду про него? Кстати, буквально 2 дня назад был задан вопрос по поддержке XCode.
Спасибо за предложение!
Да, по данным из таблицы SUSAN показывает неплохие результаты. Однако применение детектора зависит от предметной области. Опять же, необходимо провести исследование применимости детектора к изображениям из Вашей выборки изображений, например, посмотреть в Matlab, что получается на выходе. Но популярными детекторами до сих пор являются детекторы Харриса, FAST.
Также можно попытаться поискать другие статьи по сравнению. Например, здесь авторы проводят исследования детекторов Харриса и SUSAN, по результатам которых они делают вывод, что детектор Харриса лучше.
Алгоритм SIFT детектирует не углы, а капли (блобы, blobs) — структуры, описываемые 4 параметрами: координаты центра (x,y), масштаб и направление. В статье я рассматриваю обычные углы, которые описываются координатой центра (x,y) (только, если это не многомасштабный детектор). Поэтому я не рассматривал SIFT, о чем написано в статье.
Посмотрите лекцию по трехмерной реконструкции. Вот хорошие страницы по 3D восстановлению из одного изображения: один, два. И здесь особые точки не используются.
Для получения 3D модели с использованием особых точек необходимо 2 и более фотографий (например, здесь): используются особые точки с их дескрипторами и применением метода оценки параметров модели на основе случайных выборок RANSAC (Random Sample Consensus). Также для восстановления используют эпиполярную геометрию (epiporal geomerty). Например, на Хабрахабр Alex2004 писал про основы стереозрения, а здесь дана очень подробная статья по геометрическим свойствам нескольких изображений.
Реализация рассмотренных алгоритмов:
Moravec: Matlab, Java
Harris: C#, C++ OpenCV, Java
Shi-Tomasi: OpenCV C++, Matlab
Förstner: C++
SUSAN: C, Matlab
Trajkovic4: Java
FAST: C#, Java
CSS: Matlab
Детектор, основанный на глобальных и локальных свойствах кривизны: Matlab
CPDA: Matlab 1, Matlab 2
Я специально решил написать статью в таком виде, поскольку алгоритмы должны излагаться четко и последовательно. Никакого отношения к стилю как в методичке изначально не ставилась, было интересно разобраться. Наоборот, хотел, чтобы было понятно и не было ничего лишнего.
Данные взяты из таблицы в книге Digital Image Processing.
Шкала получена не «на глазок», а напрямую из оригинальной таблицею Поэтому ранжировал следующим образом:
1 – Bad, 2 – Poor, 3 – Fair, 4 – Good, 4+ – Very Good, 5 – Excellent
Аналогично, некоторые символы в виде квадратов. Браузер Google Chrome 38, на ноутбуке, кодировка UTF-8 (автоматически).
Квадратные символы
SVD — аббревиатура от Singular Value Decomposition, a не Single Value Decomposition. Поправьте, пожалуйста.
Да, спасибо, интересная статья.
Из интересного стоит отметить некоторые моменты. Через Reflector выяснил, что оператор цикла while отображается как for. В примере с linkedlist.java
while ((!var_end) && (!ret_val)) (строка 131) изменяется на
for (bool flag7 = flag4 ? flag6 : false; flag7; flag7 = flag14 ? flag16 : false)
Причём оператор && преобразуется в тернарный оператор ? :
А просматривая через ILSpy, увидел, что таких преобразований не происходит (отображается while). Предполагаю, что используются различные алгоритмы декомпиляций .NET-сборок, поскольку на уровне IL-кода while и for практически не отличаются.
Также в том же примере в строках 144 и 151 в блоке else переменной nt присваивается 0. В IL-коде этого уже нет. Можно заметить, что это бесполезный код (если переписать этот код на C#, то компилятор выдаст сообщение: warning: The variable 'nt' is assigned but its value is never used). Видимо класс динамический сборки AssemblyBuilder, находящийся внутри класса AssemblyGen библиотеки RunSharp, применяет некоторые оптимизации перед тем как сохранить файл сборки на диск.
Да, как я понял, MiniJava — это учебный язык программирования. Авторы решили составить именно такую грамматику.

Information

Rating
Does not participate
Registered
Activity