Архив автора: sv

C/C++ в Android приложениях

Тема на стадии разработки Введение При помощи Android SDK  можно писать приложения на Java или Kotlin. Кроме него есть еще Android  NDK — Native Development Kit. Это — сопутствующий инструмент Android SDK, который позволяет создавать  компоненты с помощью нативного кода (C/C++). Что означает Native (родной) код? Это означает, что C/C++  код компилируется непосредственно в понятные… Читать далее »

CMake компоновка OpenCV

У меня возникла проблема при создании проекта приложения с OpenCV. После вставки кода появляются ошибки из-за того, что  что  в OpenCV 3.4.3-vc14-vc15 отсутствуют ряд библиотек, необходимых для запуска приложения. Возможное решение проблемы — компоновка OpenCV из новейших модулей при помощи  системы CMake. Новые модули часто не имеют стабильного API пока они не прошли проверку. Поэтому они не… Читать далее »

Распознавание лиц на основе OpenCV для C++

Введение Захват видеопотока с камеры и выделение лица Выделение особых точек лица (Facial Landmark Detection) Выбор признаков для фильтрации изображений и распознавания лиц Алгоритм распознавания лиц по 2D-каркасу точек  3D-реконструкция наиболее характерных точек лица (раздел темы на стадии разработки) Полезные ссылки Введение Как может работать базовый процесс распознавания лиц: Обнаружение лица на изображении Выделение особенностей на… Читать далее »

OpenCV в Android

Инсталляция  OpenCV в  Android Studio Захват видео с камеры Отслеживание лица из видео-потока, используя каскад Хаара Полезные ссылки Инсталляция  OpenCV в  Android Studio Скачиваю с сайта OpenCV архив opencv-3.4.3-android-sdk.zip, распаковываю его и размещаю папку из распакованного архива в корень диска C. Создаю в в  Android Studio проект: File -> New -> New Project. Даю проекту имя opencv_project. Нажимаю Next ->… Читать далее »

Введение в OpenCV программирование на C++

Инсталляция  OpenCV Выделение контуров на изображении Выделение лица на изображении Захват видеопотока с камеры и выделение контуров Полезные ссылки Инсталляция  OpenCV Загружаю OpenCV-3.4.3-vc14-vc15 для Windows (у меня на компьютере Windows 10) Тестирование OpenCV проводил  для  Visual Studio 2015, которая на тот момент была установлена у меня на компьютере. Возможна ли работа OpenCV 3.4.3-vc14-vc15 с другими версиями Visual Studio… Читать далее »

Теоретические основы OpenCV

  OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Цель задачи создания компьютерного зрения (КЗ) –  проложить мостик между тем, что видит компьютер, и, что видим мы. Для компьютера изображение — это набор пикселей, у каждого из которых есть своё значение… Читать далее »

2D/3D моделирование в Android

Загрузка картинок и пиксельное представление картинки 2D графика методами объекта класса Canvas Простейшее OpenGL ES приложение 3D графика на основе OpenGL ES Полезные ссылки Загрузка картинок и пиксельное представление картинки Постановка задачи. Создать приложение, которое обеспечивает загрузку 3-х картинок (скачать картинки здесь). При нажатии (click) на нижнюю картинку вместо нее отображается точечное (пиксельное) представление картинки, которая… Читать далее »

Введение в Android программирование

Android (Андроид) – операционная система, которая позволяет создавать приложения для всех видов современных мобильных устройств – телефоны, планшеты, смартбуки, мультимедийные плейеры, видеокамеры, электронные книги, GPS, бытовая техника и многое другое. Среди сред разработки приложений под мобильные устройства наиболее популярной средой разработки приложений под Android раньше считалась Eclipse с добавлением  различных надстроек,  ее сменила Android Studio. Следует отметить, что среды разработки приложений под… Читать далее »

Поиск объектов на изображении

Базовые методы: Цветовые фильтры. Выделение и анализ контуров. Сопоставление с шаблоном. Работа с особыми точками. Методы машинного обучения. Машинное обучение — для решения задач обнаружения и распознавания, которые сводятся к построению классификатора изображений. Классификатор изображений состоит из двух частей: метод извлечения признаков (feature extractor) и собственно классификатор. Способы построения классификатора изображений: Гистограмма направленных градиентов (Histogram… Читать далее »

Алгоритмы вычитания фона.

Обнаружение объектов методом Оцу: Из гистограммы человек легко видит, что имеется два четко разделяющихся класса точек (объекта и фона). Суть метода Оцу заключается в том, чтобы выставить порог между классами таким образом, чтобы каждый их них был как можно более «плотным». Если выражаться математическим языком, то это сводится к минимизации внутриклассовой дисперсии. При решении задачи идентификации… Читать далее »

Поиск похожего изображения

Поиск похожего изображения Сначала конкретизируем задачу. Что такое “похожие” изображения? Это — собачка определенной породы, детский школьный рюкзак,  … Прежде всего необходимо  определить метрику похожести изображений. Метрика может отличаться от задачи к задаче. Например, нам нужно находить картинки, близкие по цветовой гамме, по формам объектов или как определить фотографии одной и той же собаки в разных… Читать далее »

Выделение особенностей на изображении

Особенности (features) – точечные участки (особые точки), которые чем-то выделяются на изображении: углы; пятна (Blob); особые точки линий (ответвления, окончания, пересечения …). Подходы к определению особых точек: на основе интенсивности точек изображения; использование контуров изображения; использование модели-шаблона. Требования к особым точкам: Отличимость (distinctness) – особая точка должна  быть отличимой в своей окрестности. Инвариантность (invariance) – … Читать далее »

Сегментация

Сегментация — выделение областей, однородных по какому-либо критерию, например по яркости. Существуют два альтернативных подхода к решению задачи сегментации: путем выделения границ областей; путем наращивания точек области. Первый подход основан на идее “разрывности” свойств точек изображения при переходе от одной области к другой.  При этом выделение границ областей позволяет идентифицировать и сами области. Второй подход реализует стремление… Читать далее »

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

Выделение контуров — определение набора пикселей, которые проходят на границе между двумя областями изображения. Отслеживание контуров (векторизация) — представление граничных точек контура последовательностью из множество точек контура. Описание контуров — определение линий, которыми аппроксимируется последовательность из множество точек контура. Выделение контуров Теория Под контуром изображения будем понимать точки, между которыми происходит изменение значений яркости яркости. Изменение яркости характеризуется высотой… Читать далее »

Предварительная обработка изображений

Предварительная обработка изображения — процесс улучшения качества изображения, ставящий целью получение на основе оригинала максимально точного и адаптированного для автоматического анализа изображения . Среди дефектов цифрового изображения можно выделить следующие виды: Цифровой шум Цветовые дефекты (недостаточные или избыточные яркость и контраст, неправильный цветовой тон) Размытость (расфокусировка) Методы предварительной обработки изображений зависят от задач исследований и могут включать… Читать далее »

Алгоритмы cжатия изображений

Сжатие – представление информации в более эффективном виде, влекущее за собой уменьшение объема данных (как правило). В основном алгоритмы сжатия используют свойства графических данных: избыточность – группы одинаковых символов; предсказуемость – часто повторяющиеся одинаковые комбинации символов; необязательность – данные, мало влияющие на человеческое восприятие. Оценки методов сжатия: степень сжатия – отношение объема сжатого файла к… Читать далее »

Геометрическая модель камеры

Последовательно перейдем от модели камеры обскура к модели центральной проекции (перспективы) и затем к системе координат снимка. Для этого перенесем объект на противоположную сторону относительно диафрагмы (центра проекций), сохраняя фокусное расстояние. При этом изображение перевернем. С экраном (плоскостью проекций) совместим систему координат. Значение координаты z = F-L. При F>L значение координаты z положительно:   Перспективная… Читать далее »

Формирование изображения в цифровой камере

Начнем с простого. Рассмотрим простейшую камеру (Камера-обскура) От каждой из точек объекта отражаются лучи света. Отверстие в преграде  пропускает только лишь один луч. Если не установить преграду, то на пленке получим бессмысленное изображение. Отверстие в преграде называется апертурой или диафрагмой. В реальности оно пропускает больше одного луча. При этом точка отображается на пленке пятном. Если… Читать далее »

Пошаговый чертеж в AutoCAD

Содержание задания Подготовка чертежа-шаблона Последовательность формирования чертежа двутавра Особенности построения кривых и ломаных Содержание задания Для того чтобы эффективно использовать AutoCAD API, вы должны быть знакомы с примитивами, объектами и особенностями AutoCAD, связанными с задачами, которые вы хотите автоматизировать. Чем больше у вас знаний по графическим и неграфическим свойствам объектов, тем легче для вас будет… Читать далее »

VLisp параметрический чертеж

Содержание задания Формирование пакетного файла Преобразование пакетного файла в VLISP приложение VLISP приложение для параметрического чертежа Создание пользовательской команды Создание панели инструментов с кнопкой пользователя Обеспечение ввода параметров через диалоговое окно Содержание задания Для одного из вариантов  разработать  программное приложение построения прокладки по заданным параметрам и обеспечить при этом соответствующий интерфейс (кнопка пиктограммы, диалоговое окно).… Читать далее »

VLISP 3D модель

Постановка задачи Создание чертежа-прототипа Анализ задания Пример выполнения Постановка задачи Создать программу на языке VLISP формирования в AutoCAD пространственной модели и чертежа Варианты заданий:   Создание чертежа-прототипа Выберите в качестве чертежа-прототипа acadiso.dwt и начертите 3-и отрезка (команда LINE) – ось X (красным цветом), ось Y (зеленым) и ось Z (синим). Начало отрезков из точки (0,0,0),… Читать далее »

Доступ к dxf на VLisp

Введение Формат DXF-файла Считывание данных из DXF-файла Запись данных в DXF-файл Введение Данные о чертеже обычно сохраняются в файле с расширением .dwg. Также можно сохранить чертеж в файле с расширением .dxf. Формат DXF по своей структуре похож на формат DWG, но более простой для понимания, поскольку основан на тексте ASCII. Формат DXF был создан как… Читать далее »

Алгоритмы распознавания фигур

Моделирование задачи распознавания прямоугольников Распознавание фигур на основе «выборки для обучения» Распознавание фигур «через самообучение» Сортировка плоских деталей Алгоритм задачи “Разбор завала” Программные реализации: Формирование контуров Распознавание прямоугольников (по признаку равенства сторон и диагоналей) Распознавание прямоугольников (по признаку прямого угла) Моделирование задачи распознавания прямоугольников Постановка задачи определяется целью и возможностями ее реализации. Цель. Разработать программу… Читать далее »

Формат и чтение BMP

Формат монохромного BMP файла VLISP программа считывания данных из BMP-файла (монохромного) Формат BMP (24-bit Bitmap) Загрузка и чтение BMP (24-bit Bitmap) на VB.NET C++ программа считывания данных из BMP (24-bit Bitmap) Формат Bmp (256-цветной) Формат монохромного BMP файла Создайте в графическом редакторе PAINT растровое изображение размером 50*35 пикселов. Выберите максимальный масштаб изображения и включите сетку.… Читать далее »

ООП на VB примерах

Введение Первая программа на Visual Basic Приложение со стандартными диалоговыми окнами Приложение «Графический редактор» Работа с элементом управления «Timer» Приложение с классом разработчика Пример приложения с коллекцией объектов Создание библиотек динамической компоновки Введение Основная задача этой темы – научиться читать VB программы. Что под этим подразумевается? Знать точку входа в программу, последовательность ее выполнения, уметь… Читать далее »

Доступ к файлам на VB

Введение Обработка нетипизированных файлов Обработка текстовых файлов Обработка типизированных файлов Хранение картотеки в типизированном файле Хранение картотеки в нетипизированном файле Введение С точки зрения возможностей Visual Basic по их обработке файлы бывают трех типов: Нетипизированные представляются в виде потока байтов, не объединенных ни в какие логические структуры. Любой файл можно рассматривать как нетипизированный. К достоинствам… Читать далее »

Язык Си в примерах

Создание консольного приложения Структура Си программы Препроцессорная обработка Преобразование типа переменных Программы из 2-х  и более функций Операции Массивы Указатели на переменные Указатели, как параметры функции Указатели на другие указатели Связь между массивами и указателями Указатели на функции Динамическое управление памятью Структура Примеры деклараций Тестовые примеры Создание консольного приложения Ниже в разделах приводятся исходники программ,… Читать далее »

ООП на С++ примерах

Введение в классы Перегружаемые функции и операторы Встраиваемые функции Конструкторы и деструкторы Обмен данными между объектами и приложением Указатели и ссылки на объекты Наследование в языке С++ Виртуальные функции Динамическое управление памятью Тестовые примеры Введение в классы Класс– это механизм для создания новых типов. Синтаксис описания класса похож на синтаксис описания структуры. В отличие от… Читать далее »

ООП на MFС примерах

Создание MFC приложения Простейшие оконные приложения: 1. Пустое окно 2. Обработка события в окне 3. Рисунок в окне 4. Вставка элементов управления в окно 5. Создание производного класса 6. Вставка панели состояния от события создания окна  Файловая структуризация приложений Обмен данными между объектами Контрольные задания Пример выполнения контрольной работы Библиотека (MicrosoftFoundationClasses – MFC) предоставляет программистам удобные… Читать далее »

ООП на Java примерах

Создание проекта Java Простейшее оконное приложение Оконное приложение с обработкой событий Создание картинки в окне Анимация изображения Игровое приложение ”Snake” Сетевые приложения: Приложение “Date Server and Client” с одним клиентом Приложение “Capitalization Server and Client” с несколькими клиентами Игра для двух игроков “Крестики-нолики” Полезные ссылки Создание проекта Java У Вас уже должны быть установлены среда разработки приложений NetBeans  и… Читать далее »

2D графика на основе WinApi C++

Шаблон WinAPI приложения Рисуем треугольник в оконной СК Логическая система координат Поворот плоскости Анимация изображения Аффинные преобразования треугольника Контрольные задания Исходные файлы проекта приложения Шаблон WinAPI приложения Для начала нам потребуется шаблон , на основе которого можно будет создавать дальнейшие приложения. Создайте в Visual Studio пустой проект (File → New → Project… → Visual C++… Читать далее »

3D графика на основе WinApi C++

Знакомство с возможностями и структурой приложения Контрольные задания Исходные файлы проекта приложения Знакомство с возможностями и структурой приложения Приложение, демонстрирующее аффинное преобразование треугольника в плоскости, было модифицировано в приложение, демонстрирующее аффинное преобразование пространства. Здесь, вместо плоской фигуры (треугольника)  создается и подвергается преобразованиям пространственный объект (рупорная антенна). Для создания проекта используйте исходные файлы проекта приложения. При… Читать далее »

3D графика на основе OpenGL WinApi C++

Описание шаблона приложения Поверхностная модель. Списки. Стек матриц. OpenGL – машина состояний Преобразование объекта Построение вида Перспективная и ортогональная проекции. Отсечение Анимация Режимы модели и проекции Контрольные вопросы Файлы-исходники приложения Описание шаблона приложения Изложение теории будет идти параллельно с практической реализацией на основе шаблона приложения для создания модели рупорной антенны. Создайте проект WinAPI приложения на… Читать далее »

Имитация полета крылатой ракеты на OpenGL WinApi C++

Постановка задачи Моделирование ландшафта Моделирование траектории движения объектов Моделирование сцены Архитектура программы Файлы-исходники приложения Постановка задачи С развитием информационных технологий все более актуальной становится проблематика разработки программных систем с графическим отображением происходящих процессов.  Целью статьи является отображение процесса разработки программной системы,  имитирующей полет крылатой ракеты. Для управления полетом крылатой ракеты используются цифровые картины (карты) предварительно… Читать далее »

Алгоритм 3D-реконструкции под Android device

Введение Формализация задачи Уравнения взаимосвязи между точками изображений Алгоритм и тестовые примеры Выводы Программные реализации Полезные ссылки Введение Ниже излагаются результаты исследования возможности реконструкции 3D модели по изображениям на предмет создания объемной фотографии при помощи мобильных устройств. Трехмерная реконструкция (англ. 3D reconstruction) – это процесс получения 3D объектов на основе изображений.  На вход алгоритма обработки… Читать далее »

3D реконструкция по одному изображению

Постановка задачи Алгоритм восстановления параметров положения Алгоритм смены системы координат Пример решения задачи Постановка задачи При проецировании объекта на плоскость теряется одно измерение.  Как известно, можно его восстановить по двум и более изображениям. А можно ли по одному? Можно, если известны искажения отдельных элементов объекта. Поставим конкретное задание – разработать программную систему, которая определяет по фотографии,… Читать далее »

Аффинные преобразования в Web приложениях

Введение 2D преобразования в элементе canvas Матричные преобразования Архитектура WebGL приложения WebGL приложение управления положением рупорной антенны Контрольные задания Введение В статье описываются особенности создания графических приложений для WEB, связанных с аффинными преобразованиями. В Web приложениях элементы интерфейса описывается в HTML файлах, а логика приложения – в коде javascript (JS). При создании программных систем стремятся, чтобы описание… Читать далее »

Преобразования 3D модели на VLISP и DCL

Постановка задачи Алгоритм решения задачи Интерфейс и возможности программы Файлы приложения Постановка задачи Разработать программу моделирования любого из изображений антенны (см. рис.) по её параметрам формы и положения (см. табл.). Алгоритм решения задачи Для решения задачи рекомендуется использовать  три системы координат (СК) – мировая, Монжа и антенны. Проецирование изображений может осуществляться относительно любой из них… Читать далее »

Управление AutoCAD из VB приложения

Основы COM автоматизации Простейший пример управление AutoCAD из VB приложения Создание чертежа на основе пространственной модели Моделирование процесса нарезания резьбы Отличительные особенности VBA приложений Основы COM (Component Object Model) автоматизации COM-автоматизация – технология, с помощью которой приложения, написанные на различных языках программирования, могут получать функциональность программных систем (AutoCAD, Word, Excel и др.). Объектная модель приложения… Читать далее »

Inventor API деталь на VBA

Пример создания модели детали Создание вида детали Особенности эскизирования Профили Доступ к эскизам Элементы тела (Features) Рабочие элементы (Work Features) Граничное представление тела (Boundary Representation, B-Rep) Контрольные задания Пример создания модели детали В этой теме рассматриваются примеры создания модели детали на языке VBA. Чтобы использовать Inventor API, Вы должны познакомиться с объектами, которые он предоставляет, и… Читать далее »