• Возможно распознать текст с помощью Open CV на стороне сервера?

    2ord
    @2ord
    Задача OpenCV в цепочке действий по распознаванию текста - это предобработка изображений. То есть выравнивание характеристик изображения, поворот изображения, удаление шумов, нахождение границ текста и обрезка лишнего.
    Есть Emgu CV - привязка к OpenCV для .NET
    Есть video tutorial для Emgu CV: https://www.youtube.com/watch?v=RqvvXJXuRYY

    Задача обработки с OpenCV - подготовить исходное изображение к обработке при помощи других средств, таких как tesseract-ocr, CuneiForm и прочих распознавалок, в том числе и самописных.

    Есть неплохой сайт со множеством примеров кода для OpenCV: opencv-code.com

    Схожий вопрос задавался совсем недавно и также был дан ответ: Как распознавать номера военного билета?
    Ответ написан
    1 комментарий
  • Как распарсить большое количество логов?

    2ord
    @2ord
    Если вопрос по коду, то в дополнение к neol могу добавить ещё
    d[Name] = Time почему-то присутствует в обеих ветвях if, else что неоптимально.

    Если вопрос по выбору подходящего инструмента, то альтернативой собственному скрипту можно также попробовать тот же Apache Spark.
    Ответ написан
    Комментировать
  • Хорошие ребята используют apt-get или aptitude?

    2ord
    @2ord
    Это дело вкуса каждого. Кому-то нравится командная строка, а кому-то - графический интерфейс (пусть и текстовый).
    До некоторого момента для Debian рекомендовали использовать aptitude, но как только решили проблемы с apt, то стали рекомендовать последний.
    Есть ещё cupt, разрабатываемый бывшим разработчиком apt. Позволит более тонко управлять пакетами. По-моему, подходит больше для уровня выше среднего. Его нужно устанавливать отдельно и желательно последние версии.
    Ответ написан
  • Чем записать образ windows 7 в linux?

    2ord
    @2ord
    Ответ написан
    Комментировать
  • Как нормально писать на Pascal в Notepad++?

    2ord
    @2ord
    Ответ написан
    Комментировать
  • Как убрать наименьшую цифру из заданного числа?

    2ord
    @2ord
    Чтобы получить бо́льшее число, нужно упорядочить цифры по разряду по убыванию.
    Допустим, если 538, то перевести в 853. Если убрать наименьшую цифру, то получится 85.
    Для разбиения числа на цифры воспользуйся советом cypselusmurarius.
    Ответ написан
    Комментировать
  • Какой язык программирования наиболее удобен для приложения с локальной базой данных?

    2ord
    @2ord
    Схема создания приложений для Андроида такова:
    flow.jpg
    Создавать байткод в .class файлах могут не только компиляторы языка Java, но и компиляторы большого множества других языков. Байткод Java исполняется в среде исполнения Java VM и её аналоге, Dalvik VM:
    dalvik.jpg
    На портативных устройствах Android установлен runtime Dalvik VM, а на настольных (сегодня это уже размытое понятие) - полноценная Java SE Runtime Environment.
    Одно дело - скомпилировать байткод в файл, а другое дело - исполнять инструкции байткода из файла.
    Так, Java SE Runtime Environment использует оконную систему низлежащей ОС. В Windows - Windows API, а Linux - X server API. Несмотря на разницу в оконных системах, у них много общего.
    А вот на портативных устройствах экраны другие и вместо мыши - касание экрана или перо. Причём, из-за того, что размеры экрана малы, то построение графического интерфейса для настольных и портативных устройств сильно отличается.
    Тенденция последних лет - это так называемый "адаптивный дизайн", когда графический интерфейс подстраивается под особенности экрана: автоматически изменяются размеры графических элементов, перескакивают на следущую строку и т.д.

    Для написания настольных приложений Delphi подходит.
    Для Андроида же можно создавать программы на Free Pascal в связке с laz4android.
    Ответ написан
    Комментировать
  • Когда лучше всего применять git?

    2ord
    @2ord
    Выполнять коммит по завершению какой-либо мелкой операции. Чтобы эти изменения легко было охватить и понять. А, в случае необходимости, отменить, не затрагивая других частей.
    Ответ написан
    Комментировать
  • Разбор поисковой фразы на конкретные запросы. Как?

    2ord
    @2ord
    Смотреть в сторону лексических анализаторов, теории компиляторов - для получения абстрактного дерева, которое можно обратить в запрос(ы).

    Нейросети, по-хорошему, нужно оставить в стороне. Навряд ли они понадобятся на каком-либо этапе.
    Ответ написан
    5 комментариев
  • Как организовать безопасную регистрацию и авторизацию на простом HTTP сервере (C#)?

    2ord
    @2ord
    Чтобы безопасно, то только через HTTPS соединение.
    В двух словах не объяснить - почитай руководства и слайды на тему аутентификации, сессий.
    После того как человек идентифицирован, программа должна определять какие права он имеет в системе: что можно, а что нельзя.
    Работа с сертификатами - это, по-большей части, работа сисадминская.
    На рабочей машине достаточно работать с самоподписанным сертификатом. Главное, чтобы веб-сервер поддерживал HTTPS.
    Ответ написан
    Комментировать
  • Возможно ли использовать язык D для программирования микроконтроллеров и манипуляторов?

    2ord
    @2ord
    У языка D рантайм жирноват. Кроме того, затруднительно использовать для платформ < 32 бита.
    Ответ написан
    Комментировать
  • Как получить соотношение сторон искаженного прмоугольника?

    2ord
    @2ord
    Формулы не скажу - не знаю.
    При помощи OpenCV попробуй getPerspectiveTransform
    stackoverflow.com/questions/8235288/perspective-co...
    Automatic perspective correction for quadrilateral...
    Ответ написан
    Комментировать
  • Как лучше производить обработку сырых данных?

    2ord
    @2ord
    В целом, для обслуживания отложенных запросов вместо cron нужно использовать сервер очередей.
    Советую просмотреть слайды Как Badoo модерирует 1 миллиард фотографий в год
    Ответ написан
    Комментировать
  • Какой микро-сервис вам необходим как (веб-)разработчику?

    2ord
    @2ord
    На Тостер'е часто мелькают вопросы о том как спарсить тот или иной ресурс. Чаще всего связано с соц. сетями. А есть и другие, например, Где достать базу с OEM всех существующих запчастей авто?
    Смысл состоит в написании универсального фреймворка для получения сырых данных с любого сайта. Таким образом, по аналогии с ОС: имеется ОС и тогда нужно написать драйвер для периферийного устройства.
    Ответ написан
  • На чем писать back-end, в котором много математики?

    2ord
    @2ord
    Предметную область по цифровой обработке сигналов лучше писать на высокопроизводительных языках, собирая в библиотеки. Затем из любого веб-фреймворка, скажем на Python, можно работать с библиотечными вызовами.
    В целом, для back-end подходят Fortran/Go/Java. На Fortran пишут, в основном, бородатые дядечки. А Go/Java - для нынешнего поколения.
    В качестве эксперимента могу предложить ещё язык Julia, который согласно разработчикам имеет скорость близкую к C. Причём этот язык под капотом использует вызовы к математическим библиотекам: FFTW, LAPACK, OpenBLAS, GMP и т.д.
    Ответ написан
    Комментировать
  • Что делает техник-программист?

    2ord
    @2ord
    Наверно, это синоним слову "компьютерщик".
    Думаю, это такая профессия, когда человек выполняет любой вид работ, связанный с работой вычислительной техники и сетей: поиск и ремонт неиправностей в железе и сетях, "кодит" программы и т.д.
    То есть мастер на все руки и отвечает за всё.
    Ответ написан
    Комментировать
  • Как реализовать сортировку данных и фильтрацию данных на строне клиента?

    2ord
    @2ord
    AJAX -> get JSON -> render HTML.
    Нужно лишь при помощи JS и шаблонов.

    Пользователю одинажды выдаётся HTML с полной вёрсткой и готовым шаблоном целевого view внутри самой вёрстки, непосредсвенно при помощи inline вставки. Затем по загрузке DOM целиком, вызывается AJAX для получения сырых данных, на основании которых при помощи шаблона строится целевой код. Всё это при помощи jsRender (~17 KB).
    Можно без AJAX. Тогда сырые данные нужно получить внутри inline JS кода вместе с HTML.
    Ответ написан
    Комментировать
  • Можно ли использовать чужой код?

    2ord
    @2ord
    Два варианта:
    1. Лицензия на использование кода не указана. Тогда нужно связаться с автором кода и урегулировать вопрос об использовании его кода в своих целях. Иначе можете встретиться в суде.
    2. Указан тип лицензии. Тогда действуете строго по пунктам лицензии, иначе также рискуете. Если тип лицензии не удовлетворяет, то это также можно урегулировать с автором кода, договорившись о подходящей для вас обоих лицензии. Некоторые разработчики выпускают код под двойными лицензиями. Если у вас открытый код (даже если и коммерческий), то просто используете и открываете свой код тоже. А если хотите закрыть код, то платите автору отчисления за использование кода.
    Ответ написан
    Комментировать
  • Какие есть библиотеки по распознаванию звуков, музыки?

    2ord
    @2ord
    Цифровая Обработка Сигналов - это непростая тема, помимо трудностей распознавания музыки.

    О том как делается распознавание читай в статье
    Shazam It! Music Recognition Algorithms, Fingerpri...
    But how does Shazam really work? Shazam’s algorithm was revealed to world by its inventor Avery Li-Chung Wang in 2003. In this article we’ll go over the fundamentals of Shazam’s music recognition algorithm.

    Если вкратце, то суть сводится с получению цифрового "отпечатка" сузыкальной композиции на коротком сэмпле (до 15 сек.). Этот отпечаток затем ищется по хэш-таблице в наборе заранее известных отпечатков разных композиций. А теперь давай представим: какой объём музыкальных композиций существует и как со всех них взять правильный отпечаток? Даже если иметь огромную коллекцию студийного качества и взять отпечатки со всех композиций, то со стороны пользователя, скажем, мобильного телефона, будут присутствовать разнообразные шумы: разговоры, шум транспорта и прочие.

    Для ЦОС часто используют библиотеку FFTW (БПФ) - лишь один из многих видов анализа цифровых сигналов.
    Ответ написан
    Комментировать
  • Как реализовать вычисление переменного процента?

    2ord
    @2ord
    С Экселем знаком неглубоко, поэтому могу подсказать лишь частичное решение, от которого можно отталкиваться.

    Создать таблицу с 3-мя колонками
    0, 100, 100
    100, 150, 80
    150, 250, 60
    ...

    Затем средствами скриптинга (написать самому) сканировать ячейки сырых данных согласно предопределённым надбавкам из таблицы выше.
    Ответ написан
    Комментировать