Pull to refresh

Детектирование эллиптических частиц на микрофотографии. Новый алгоритм поиска эллипсов на изображении

Image processing *
Я всё продолжаю возиться со своими микрофотографиями. Наука не стоит на месте (с момента той статьи прошел без двух месяцев год!), и теперь нам нужно распознавать другие объекты:


Но тут уже безо всяких послаблений: точность должна быть достаточно высокой.
Конкретно эта задачка встала недавно (примерно в конце ноября), и решалась в свободное от учёбы и работы время.
Achtung! Статья получилась довольно крупная, много картинок. Зато без избыточной математики.

Сформулируем задачу: получить параметры, полностью характеризующие контур фигуры, изображенной на картинке.
Читать дальше →
Total votes 35: ↑32 and ↓3 +29
Views 12K
Comments 41

Эллиптический спирограф

Algorithms *Mathematics *
В детстве у меня была игрушка под названием спирограф. Это такой пластмассовый лист с круглой дырой внутри, а к нему прилагались зубчатые шестеренки, тоже с дырочками, но маленькими. Ставишь ручку в дырочку, шестеренку в круг и катаешь. В результате получаются красивые кружевные узоры, которые руками ну никак не нарисуешь.

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

Однако взятые крепости уже не манят. Естественно теперь задачу обобщить — например, сделать, чтобы маленький круг ездил внутри не окружности, а фигуры посложнее, допустим, эллипса.
Читать дальше →
Total votes 60: ↑60 and ↓0 +60
Views 27K
Comments 18

Визуализация двумерного гауссиана на плоскости

Data Mining *Mathematics *R *
Доброго времени суток. В процессе разработки одного из методов кластеризации, возникла у меня потребность визуализировать гауссиан (нарисовать эллипс по сути) на плоскости по заданной ковариационной матрице. Но я как-то сразу и не задумался, что за простой отрисовкой обычного эллипса по 4 числам скрываются какие то трудности. Оказалось, что при расчете точек эллипса используются собственные числа и собственные векторы ковариационной матрицы, расстояние Махаланобиса, а так же квантили распределение хи-квадрат, которое я, честно говоря, не использовал со времен университета ни разу.

Читать дальше →
Total votes 48: ↑45 and ↓3 +42
Views 27K
Comments 18

Рисование эллипса под произвольным углом в canvas на JavaScript

JavaScript *Canvas *
Tutorial
В процессе разработки одного приложения столкнулся с необходимостью рисования эллипсов под произвольным углом в canvas на JavaScript. Пользоваться какими-либо фреймворками в столь простом проекте не хотелось, так что я отправился на поиски статьи-мануала на эту тему. Поиски не увенчались успехом, так что пришлось разбираться с задачей самостоятельно, и я решил поделиться с вами полученным опытом.

Формализуем задачу. Нам требуется функция drawEllipse(coords, sizes, vector), где:

  • coords — координаты центра эллипса — массив [x, y]
  • sizes — длины большой и малой полуосей эллипса — массив [a, b]
  • vector — вектор [x, y] наклона эллипса

Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Views 23K
Comments 23

Создание плагинов для AutoCAD с помощью .NET API (часть 4 – вставка примитивных объектов)

CAD/CAM *
Tutorial
Добро пожаловать в четвертую часть цикла, посвященного разработке плагинов под AutoCAD. Предыдущие статьи затрагивали общие вопросы создания плагина — а теперь, вооружившись этими знаниями, можно наконец-то перейти к главной задаче, стоящей перед пользователем AutoCAD: редактированию чертежа.

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

public static string disclaimer = "Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о создании плагина.";
Линии и не только
Total votes 10: ↑9 and ↓1 +8
Views 13K
Comments 6

Астрономы нашли планету с нетипично вытянутой орбитой

Popular science Astronautics
image
Соотношение орбиты планеты HD 20782 с орбитами планет нашей системы

Астрономы из государственного университета Сан-Франциско обнаружили планету с крайне нетипичной орбитой. Вместо привычной орбиты, близкой к круговой, планета HD 20782 двигается по сильно вытянутому эллипсу.

Если сравнивать эту орбиту с параметрами нашей Солнечной системы, то в части её наибольшего удаления планета находится на расстоянии от своей звезды, в 2,5 раза превышающем расстояние от Земли до Солнца. Когда же планета находится ближе всего к звезде, то расстояние между ними гораздо меньше, чем расстояние от Меркурия до Солнца.
Читать дальше →
Total votes 17: ↑11 and ↓6 +5
Views 10K
Comments 21

Использование библиотеки OpenCV для распознавания эллиптических дуг на 2D сечениях 3D облаков точек

Image processing *
Sandbox
Tutorial

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

Одно из востребованных применений 3dОТ в промышленности — это создание конструкторской документации на только возводимое, старое или переделанное оборудование, которое обычно представляет из себя трубопроводы и другие конструкции цилиндрической геометрии.

Для детектирования геометрических примитивов в 3dОТ обычно применяются специализированные 3D библиотеки, например Microsoft PCL. У подхода с использованием готовых библиотек наряду с достоинствами есть и недостатки. Например, трудно включить их в уже существующие кадовские схемы обработки, которые обычно имеют 2D размерность.

Рассмотрим, как можно было бы обрабатывать 3dОТ, например насосной станции, начав с 2D сечений и используя весь арсенал 2D обработки, который есть в надежных и оптимизированных библиотеках обработки изображений, например OpenCV.


Рисунок 1. 3D ОТ модель насосной станции

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 2.5K
Comments 0

Комплексные числа и геометрические узоры

RUVDS.com corporate blog Vector graphics *Algorithms *Mathematics *Graphic design *
Когда речь заходит о комплексных числах, в первую очередь вспоминают о преобразовании Фурье и прочих аспектах цифровой обработки сигналов. Однако у них есть и более наглядная интерпретация, геометрическая — как точки на плоскости, координатам которой соответствуют действительная и мнимая часть комплексного числа. Рассматривая некоторую кривую как совокупность таких точек, можно описать её как комплексную функцию действительной переменной.

Дальше больше картинок и анимаций
Total votes 106: ↑106 and ↓0 +106
Views 18K
Comments 39

Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры

Abnormal programming *Java *Algorithms *

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

Читать далее
Total votes 12: ↑12 and ↓0 +12
Views 3.7K
Comments 6