Как стать автором
Обновить
@yurisv3read⁠-⁠only

Пользователь

Отправить сообщение

Алгоритмы обнаружения контуров изображения

Время на прочтение20 мин
Количество просмотров27K
В статье представлены четыре самых распространённых алгоритма обнаружения контуров.

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

Данные алгоритмы будут игнорировать все «дырки» в паттерне. Например, если у нас есть паттерн, подобный показанному на Рисунке 1, то обнаруженный алгоритмами контур будет похож на показанный на Рисунке 2 (синими пикселями обозначен контур). В некоторых областях применения это вполне допустимо, но в других областях, например, в распознавании символов, требуется обнаружение внутренних частей паттерна для нахождения всех пробелов, отличающих конкретный символ. (На Рисунке 3 показан «полный» контур паттерна.)

image


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

image
Читать дальше →

Профилирование под Linux с помощью Performance Analyzer

Время на прочтение4 мин
Количество просмотров4.9K

Профилирование под Linux с помощью Performance Analyzer


Коллеги, считаю полезным рассказать об удобном и бесплатном профилировщике кода для Linux/Solaris. Он входит в пакет Sun/Oracle Developer Studio [1]. По моему мнению, другие части этой среды разработки несколько бесполезны, но профилировщик, который называется Performance Analyzer, очень удачный. Он прост в использовании, наглядно и удобно устроен анализ результатов. На мой взгляд, профилировщик все еще превосходит многие аналоги под Linux. При наличии этого инструмента использование gprof видится странной прихотью и потерей времени.


Если вы не планируете использовать Performance Analyzer немедленно, то дальше можно не читать. Просто запомните, что такой продукт существует. Если же интересно взглянуть, то добро пожаловать.

Читать дальше →

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

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

Вопрос, казалось бы, простой на первый взгляд… можно погуглить, и всё станет ясно. Но практически все статейки в сети дают либо «космические» числа — вроде 400-600 мегапикселей (Мп), либо это и вовсе какие-то убогие рассуждения.

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

Начнём с общей структуры зрительной системы


  1. Сетчатка
  2. Зрительный нерв.
  3. Таламус(ЛКТ).
  4. Зрительная кора.



Сетчатка состоит из трёх типов рецепторов: палочки, колбочки, фоторецепторы(ipRGC).
Читать дальше →

8 историй о внутреннем Китае. То, что не показывают иностранцам

Время на прочтение12 мин
Количество просмотров148K

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


Чжунго — самая развивающаяся страна в мире. Во всех сферах: производство, IT, биотехнологии. В прошлом году Китай показал крупнейший в мире валовый продукт, который составил 18% от мирового ВВП.


Китай давно и прочно стал основным экономическим партнёром нашей страны. Россия продаёт Китаю ресурсы: нефть, газ, лес, металлы, продовольствие. Китай продаёт России высокотехнологичную продукцию: станки, электронные приборы, компьютерную и бытовую технику, настоящие швейцарские часы за 50 долларов, спинеры и прочий AliExpress. В прошлом году товарооборот с Китаем превысил 108 миллиардов долларов — за год вырос на четверть.


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



Старинная китайская гравюра. Дядюшка Ляо на прогулке придумывает iPhone 12 c ТВ-приёмником, пятью sim-картами, десятью камерами, термометром, шокером и пылесосом.


Читать дальше →

Android Camera2 API от чайника

Время на прочтение32 мин
Количество просмотров58K


Не так давно я возился со своей роботележкой, пытаясь водрузить на нее ANDROID смартфон. Моей, то есть его задачей, было сделать тележку эволюционно продвинутой. Чтобы она, так сказать, чувствовала мир его сенсорами, смотрела его глазом (камерой), слышала микрофоном и ругалась по громкой связи. Ресурсов AVR, понятное дело, на это уже не хватало и поэтому бывший на телеге микроконтроллер переехал на уровень ниже, куда-то в район спинного мозга управлять моторчиками и разными безусловными рефлексами.

Но странное дело, когда я начал писать приложение для смартфона, нехорошая IDE ANDROID STUDIO стала постоянно зачеркивать мой код и называть его устаревшим.

camera = Camera.open();

Особенно, как вы видите, в тех частях, где я пытался работать с камерой. Это было очень обидно, потому что я прочитал в интернете и усвоил множество уроков работы с андроидом и камерой здесь, здесь, здесь и даже здесь. Там ничего не зачеркивалось. И называлось заурядно Camera API. Все там было просто и логично. Но Google упрямо толкал меня к какому-то Сamera2 API.

Я туда посмотрел и просто опупел от количества разных коллбэков, билдеров, хэндлеров и луперов на каждую строчку демонстрационного кода. Было совершенно непонятно с какой стороны к этому подступиться, если ты обычный любитель, а не android developer. Причем в сети даже на сегодня статей на тему Сamera2 API чуть, хотя вышло это обновление вроде как, аж четыре года назад. Но всё что я нашел, это статью в Хакере в 2016, пост в трех частях от украинских братьев того же года, двойной пост на Хабре в 2017 и статью Understanding Camera2 от японского мегагика Томоаки Имаи. И это я ещё имею в виду какую-то структурированную и оформленную информацию, а не раскиданные в интернете обрывки кода типа, «смотрите, как я могу» и простыни в стиле, «посмотрите код плиз, у меня ничего не работает».

А теперь, если вам всё ещё интересно зачем мне потребовалось пилить свой пост на эту тему
уже в 2019, то добро пожаловать под кат.
Читать дальше →

Nuklear — идеальный GUI для микро-проектов?

Время на прочтение7 мин
Количество просмотров67K

Nuklear — это библиотека для создания immediate mode пользовательских интерфейсов. Библиотека не имеет никаких зависимостей (только C89! только хардкор!), но и не умеет создавать окна операционной системы или выполнять реальный рендеринг. Nuklear — встраиваемая библиотека, которая предоставляет удобные интерфейсы для отрисовки средствами реализованного приложения. Есть примеры на WinAPI, X11, SDL, Allegro, GLFW, OpenGL, DirectX. Родителем концепции была библиотека ImGUI.


Чем прекрасна именно Nuklear? Она имеет небольшой размер (порядка 15 тысяч строк кода), полностью содержится в одном заголовочном файле, создавалась с упором на портативность и простоту использования. Лицензия Public Domain.

Читать дальше →

Скрипт настройки Windows 10

Время на прочтение2 мин
Количество просмотров173K

image
Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 19041), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

Если кому-то интересно, то добро пожаловать под кат.

Читать дальше →

Эдуард Пройдаков: «В свое время электронику вытащили персоналки. Сейчас ее вытащат роботы»

Время на прочтение16 мин
Количество просмотров14K


Эдуард Пройдаков — директор Виртуального компьютерного музея, разработчик, эксперт в области информационных технологий, преподаватель, журналист и переводчик. В интервью для Музея DataArt Эдуард Михайлович рассказал об экспедициях в пустыни и болота, системе бронирования билетов советского «Аэрофлота», полонезе Огинского на ламповой М-20, программистах-романтиках 1960-х, архитектурном кризисе и его преодолении.
Читать дальше →

CMake и C++ — братья навек

Время на прочтение11 мин
Количество просмотров93K

Дружба навек


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


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


В данной заметке я хочу рассказать, как достаточно просто организовать заголовочную библиотеку на языке C++ в системе CMake, чтобы получить следующую функциональность:


  1. Сборку;
  2. Автозапуск тестов;
  3. Замер покрытия кода;
  4. Установку;
  5. Автодокументирование;
  6. Генерацию онлайн-песочницы;
  7. Статический анализ.

Кто и так разбирается в плюсах и си-мейке может просто скачать шаблон проекта и начать им пользоваться.
Читать дальше →

Курс лекций «Основы цифровой обработки сигналов»

Время на прочтение12 мин
Количество просмотров216K
Всем привет!

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

Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.


Читать дальше →

Радиолюбительская технология: как я заказал монтаж печатной платы на китайской фабрике

Время на прочтение5 мин
Количество просмотров32K

Цель публикации: рассказать, как подготовить несложную радиолюбительскую конструкцию к производству.

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

В этой статье описано: как производится монтаж печатных плат на производстве; как подготовить в CAD Eagle 7.7.0 проект для сборки прототипа на CAM, расположенной в КНР.

В этой статье не рассматриваются: критерии выбора контрагента, экономические аспекты, вопросы логистики.
Читать дальше →

Поделки из нерабочих HDD — мини-помпа

Время на прочтение6 мин
Количество просмотров103K


Понадобилась мне как-то для будущих самоделок водяная помпа. Да не простая — с ограничениями по габаритам — толщина до 25мм, ширина до 50мм (длина — уже можно варьировать). Из желаемых характеристик — напор 1м и расход 100л/ч. Не найдя в продажах желаемого (в основном — по габаритам), по своей упоротойупорной натуре приступил к реализации своего решения данного вопроса!

Внимание — много фото!

Пример простой нейросети, как результат разобраться что к чему

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

В конечном итоге, как мне показалось, нет лучше способа разобраться, чем просто взять и создать свой маленький проект.
Читать дальше →

К вопросу о вертолетиках или как я провел выходные

Время на прочтение8 мин
Количество просмотров20K

Если Вы купили что-то, и на этом нет надписи «Сделано в Китае», значит, Вы купили подделку.



Мои читатели будут несколько удивлены, что я решил похвалить не свою разработку, но куда деваться… Купил я недавно в «Смешных ценах» (ну это в девичестве, теперь они серьезная организация и называются «Fix Price») забавную игрушку «Летающий шар со светом», многочисленные ссылки в Интернете Вы найдете самостоятельно.


Поиграл с ней минут двадцать и одолело меня желание узнать, что у девайса внутри, проистекающее из двух источников:

  1. Я инженер и мне интересно, как такая игрушка устроена (вернее, я уже догадываюсь, как она устроена и хотел бы проверить свои догадки);
  2. Я в прошлом предприниматель и мне интересно, как китайцам (я не написал, что игрушка изготовлена в КНР, но это вроде как совершенно очевидно) удается делать такие вещи за совсем небольшие деньги. Совсем забыл сказать, сколько такая игрушка стоит — я ее купил за 199 рублей, менее трех долларов, Карл.
Если Вам тоже интересно, то Вам сюда

FFmpeg начало работы с Visual Studio

Время на прочтение5 мин
Количество просмотров18K
Привет! Начну с того, что я занимаюсь разработкой программы определения автомобильных номеров на дешевом слабомощном процессоре типа Intel ATOM Z8350. Мы получили достаточно хорошие результаты в определении российских номеров на статической картинке (до 97%) с неплохим быстродействием без применения нейронных сетей. Дело осталось за малым — работа с IP-камерой рис 1.

image
рис.1 Компьютер Intel ATOM Z83II и IP-камера ATIS

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

Задача: Full HD IP-камера в стандарте h.264 передает RTSP поток. Размер распакованного кадра 1920x1080 пикселей, частота 25 кадров в секунду. Нужно получать декодированные кадры в оперативную память и каждый 25 кадр сохранять на диск.

В данном примере мы будем декодировать кадры программно. Цель — научиться использовать FFmpeg и в дальнейшем сравнить результаты, получаемые с помощью аппаратного декодирования. Вы увидите, FFmpeg – это просто!
Читать дальше →

Будущее VR видео — VR180 от Google

Время на прочтение12 мин
Количество просмотров21K
Хинт: этот gif запускается и останавливается по клику

S3D: No pain IS gain


В апреле этого года Google анонсировала технические детали нового формата для VR-видео — VR180. Спецификации формата были выложены в репозиторий Google на GitHub, производителям камер было предложено делать специальные камеры, формат стал поддерживаться на YouTube.

Основная идея довольно проста. В «обычном» VR-видео — 360-видео — можно вертеть головой во всех направлениях по горизонтали, при этом основное действие происходит, как правило, с какой-то одной стороны, а на устройство транслируется весь поток, что приводит к передаче и хранению избыточной информации. По факту в подавляющем большинстве случаев нет необходимости в реализации просмотра на 360 градусов — для достижения того же эффекта вполне достаточно и 180 градусов. При этом «вторая половина» кадра используется для второго ракурса, то есть получается стерео.

Таким образом, предложенный формат обеспечивает даже большее ощущение погружения, чем от 360-видео, является более дешевым в производстве, более простым в съемке и не имеет проблем со стичингом.

Как такое возможно, и что же предложили в Google?

Кому интересно VR-видео ближайшего будущего — добро пожаловать под кат!

Быстрое умножение целых чисел с использованием таблиц

Время на прочтение3 мин
Количество просмотров15K
Хочу рассказать читателям о программистском трюке, с которым я познакомился в какой-то переводной книжке, содержащей подборку таких трюков, в те далёкие времена, когда ещё не изобрели не то что байт, а страшно сказать — стек, а великий Дейкстра ещё не проклял оператор GOTO (sic, in uppercase).

Трюк настолько мне понравился простотой и изяществом, что уже в этом тысячелетии я с удовольствием рассказывал о нём студентам в виде следующей задачи.

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

В таком сюжете нет ничего особо фантастического. Вспомним, например, какие проблемы случались когда-то с процессорами Pentium , а к моменту отправки на Луну вы ещё не достигли полного импортозамещения. И вообще надо проверить, а не были ли процессоры просверлены специально.

Но к делу. Вам надо срочно реализовать умножение программно, чтоб работало быстро в реальном времени и укладывалось в доступный ресурс.
Читать дальше →

Из-за климатических изменений самолётам стало сложнее взлетать

Время на прочтение3 мин
Количество просмотров34K


В том, что сейчас на Земле происходят масштабные климатические изменения, уже мало кто сомневается. Единственное — часть ученых (большая) говорит, что наступил период глобального потепления, а часть утверждает, что наоборот, грядет глобальное похолодание. Как бы там ни было, среднегодовая температура постепенно повышается, и в ряде регионов это очень заметно. Где-то тают ледники, выступает грунт или скалы, которые были скрыты в течение многих веков. Ну а где-то становится настолько жарко, что самолеты не могут нормально взлететь.

Да, это звучит немного странно, но некоторые модели авиалайнеров просто не в состоянии взлететь, если температура воздуха превышает определенный предел. Недавно это случилось в одном из аэропортов США, а именно в том, что расположен в городе Феникс. Здесь в один из жарких дней компания American Airlines была вынуждена отменить более 50 рейсов. Ее авиалайнеры Bombardier CRJ физически не могут оторваться от земли, если температура воздуха превышает 47 градусов Цельсия.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность