• Использовать ли Python, когда можно обойтись bash?

    @fireSparrow
    Без кода сложно говорить что-то конкретное.

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

    Вот этот код у меня грузит процессор на 99-100%

    while True:
        x = range(3)


    А вот с этим процесс python3 я почти вообще не вижу в выводе команды top. Он там появляется всего несколько раз в минуту с какой-то смешной цифрой вроде 0,2 % загрузки процессора.

    import time
    
    while True:
        x = range(3)
        time.sleep(0.1)


    Так что используйте задержки в цикле и будет вам счастье.
    Ответ написан
    Комментировать
  • C++ fstream. Не работает чтение из бинарного файла, почему?

    TrueBers
    @TrueBers
    Гуглю за еду
    Т.е по сути моя i должна быть равна 3
    Не должна она вам ничего, пока документацию не прочитаете.

    Зачем вы добавили ios::trunc при открытии файла?
    trunc от слова truncate, переводится как: обрезать, усекать, урезать, сокращать.

    В документации ясно написано же: trunc discard the contents of the stream when opening. Что переводится как, отбрасывает содержимое потока при открытии.
    Он же вам его очищает и открывает новый пустой файл, вы его читаете, а там нечего читать. Вот и результат.
    Ответ написан
    1 комментарий
  • Книги или другие источники информации по Автоматизации?

    NeiroNx
    @NeiroNx
    Программист
    Много студентов пользуются этим сайтом:
    www.twirpx.com/files/automation
    Скачивание конечно за баллы, но у меня их накопилось прилично.
    Ответ написан
    Комментировать
  • Как узнать включает или нет изображение №1 объект с изображения №2 с помощью OpenCV?

    Zenker
    @Zenker
    Я правильно понимаю, что вы рассчитываете расстояния между дескрипторами и ищите наиболее похожие точки на образце и текущем изображении? Если так, то при таком подходе не учитывается взаимное расположение точек, поэтому едва ли можно судить о наличии объекта на изображении. Я сам с OpenCV знаком мало, поэтому постараюсь в общих чертах описать возможный способ решения:

    1) С помощью детекторов локальных особенностей (SIFT/SURF/ORB итд.) находите особые точки на образце и изображении

    2) Для найденных точек рассчитываете в их окрестностях значения дескрипторов. Дескриптор — это многомерный вектор(по сути набор чисел), характеризующий точку. Чем больше похожи два дескриптора(меньше расстояние между ними), тем более вероятно, что речь идет об одной и той же точке на образце и текущем изображении.

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

    4) Самый важный этап. Ложные соответствия обычно хорошо фильтруются алгоритмом RANSAC. Суть тут вот в чем: алгоритм пытается по вышенайденным точкам найти преобразование, которое позволило бы наилучшим образом сопоставить два изображения. Если такое преобразование находится и достаточно большое количество точек подтверждает эту модель(такие точки называют инлайнами), то скорее всего объект на изображении присутствует.

    Конкретно в OpenCV есть функция FindHomography, только нужно с ней разобраться. Если я правильно понял, srcPoints и dstPoints — массивы особых точек на образце и изображении, где элементы с одинаковыми индексами — это и есть пары сопоставленных точек. Возвращает матрицу преобразования H, но как сигнализируется об успешности ее поиска — нужно разобраться. Возможно, нагуглить какую-нибудь другую реализацию. Я бы попробовал оценить результат по доле инлайнов в общем количестве точек.
    Поподробнее про RANSAC и подобную задачу в целом можно почитать тут: engineering.purdue.edu/kak/courses-i-teach/ECE661.08/solution/hw4_s1.pdf
    Ответ написан
    2 комментария
  • Прошу помочь составить план\стратегию\порядок обучения, радиоэлектронике\пайке\и т.п.?

    @BorodaRussia
    Скажу как радиолюбитель начавший свой путь еще со школы, потом ПТУ РЭА и КИП, высшее радиотехника, связист КШМ в армии... - ёб_и стопаря и задай себе вопрос да так что бы потом получить отчетливый мужской ответ "а нах_я мне это надо?".

    Сейчас радиоэлектроника шагнула довольно далеко, и если еще 2004 был какой-то интерес, например собрать hi-fi усилитель то сейчас в мире цифровых технологий проще в кредит взять качественную аппаратуру и не ебат_ся с подбором транзисторов или поисками качественных компонентов, зная при этом что по "оптике" звук будет "чище". Можно конечно по-баловаться контроллерами, разные интересные штуки собрать. Все это на данный момент игрушки.

    Сейчас в эпоху процессорной техники учиться по данной профессии со знанием как аналоговой аппаратуры так и цифровой - процессоры, контроллеры и т.п. не забывая при этом СВЧ технику - 5.5 лет и скорее всего срок будет увеличиваться. При этом бегло проходить темы радиоматериалов и разработки ИМС.
    Ответ написан
    Комментировать
  • Плохо ли сильное вращение кулеров в Diablo 3?

    Как вариант - можно использовать охлаждающую подставку под ноутбук:

    6a7790a8665943c5bb7a58ad4d735b5d.jpg

    И, по возможности, заменить термопасту и почистить от пыли систему охлаждения ноутбука. В большинстве случаев помогает.
    Ответ написан
    Комментировать
  • Как добавить путь к инклудам в системные пути gcc?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Никак. Системные пути hardcoded. Изменить их можно только пересборкой самого gcc. Makefile для того и служит, чтобы прописать все необходимые пути и прочее. И именно поэтому поверх него накрутили столько всяческих вещей - pkgconfig, autotools, cmake - они все вроде как призваны облегчать работу программиста по формированию проекта, но на самом деле запросто способны его в хлам запутать, особенно cmake :)

    Если Вы задумались над переносимостью проекта - то Вам либо с autotools разбираться (хотя с ними придется разобраться в любом случае), либо с cmake.
    Ответ написан
    6 комментариев
  • Операционная система для умного дома на C++ c полного нуля. Как?

    GavriKos
    @GavriKos
    А почему арм и малина? Это ж несолидно. Делайте свои микроконтроллеры! Добывайте кремний, разрабатывайте схему. А там и свой ASM и ось подтянутся.
    Вот ваш вопрос примерно из той же категории, если что.
    Ответ написан
    Комментировать
  • Какие технологии и языки программирования изучают на специальности «Информационная безопасность телекоммуникационных систем»?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    В каждом вузе своя программа. Спрашивайте у учащихся там, смотрите учебный план данного вуза.
    Ответ написан
    Комментировать
  • Как работает этот код?

    @MiiNiPaa
    Может ли n быть больше нуля, если перед этим мы делаем count = 0?
    static unsigned long count = 0;
    Объявляет и инициализирует переменную. Переменная инициализируется только раз за время своей жизни. В случае статической переменной — перед первым запуском функции.
    То есть, начальное значение n — 0, после этого обратно в ноль она больше не сбрасывается.
    зачем здесь mutex
    Подумайте, что случится. если два потока наткнутся на инкремент одновременно юез синхронизации. Особенно при существовании кэша, присутствии оптимизаций, консолидирующих запись в память и тому подобного. На самом деле тут лучше использовать атомик, ну да ладно.
    Ответ написан
    Комментировать
  • Дайте названия простых книг о Computer Science?

    @Eugen_p
    SICP, не скажу что простая, но не предполагает у читателей опыта программирования. Вроде как классика, но в качестве яп используется диалект лиспа.

    Если подходит формат видео уроков можете глянуть курс на stepik

    Ну и Код. Тайный язык информатики, можно читать почти как худ. лит.
    Ответ написан
    1 комментарий
  • Какая есть литература по обработке видео?

    @AlexSku
    не буду отвечать из-за модератора
    1) Любые алгоритмы в тулбоксе Image Processing Матлаба

    2) из старой литературы обработка видео в DirectShow и Media Foundation Microsoft
    а) справка SDK
    б) Mark D. Pesce. Programming MS DirectShow for digital video and television
    в) Turcan, Wasson. Fundamentals of Audio and Video Programming for Games
    г) Anton Poligner. Developing MS Media Foundation Applications
    Ответ написан
    Комментировать
  • Где искать библиотеки boost?

    BuriK666
    @BuriK666
    Компьютерный псих
    у меня они в /usr/lib64/libboost_*
    UPD: в debian нашел в /usr/lib/x86_64-linux-gnu/libboost_*
    Ответ написан
    4 комментария
  • Почему в С 0 != 0, а 0 == 0?

    @ivkol
    замените на if(fabs(height[j])<0.0000001) ...
    Ответ написан
    Комментировать
  • Как отсортировать массив с чередованием по два знака?

    1. Отфильтровать положительные элементы в один новый std::vector, отрицательные в другой std::vector
    2. Выводить группами по 4 элемента: 2 из первого вектора, 2 из второго
    Ответ написан
    2 комментария
  • Range-based циклы?

    По той же причине, по которой аргументы функции модифицируются только через ссылку.
    Ответ написан
    Комментировать
  • Как сравнить каждый элемент в списке Python?

    @zzzevaka
    Читайте help(all) или help(any)

    >>> l=[1,2,3]
    >>> all(l[i] < l[i+1] for i in range(len(l)-1))
    True
    >>> l=[3,2,1]
    >>> all(l[i] < l[i+1] for i in range(len(l)-1))
    False
    Ответ написан
    9 комментариев
  • Как делать gui интерфейс в Clion?

    @akass
    Developer
    Qt не костыльный метод, собственно насколько знаю, Qt самый адекватный и актуальный способ делать gui на плюсах.
    Ответ написан
    2 комментария
  • Как найти область определение функции?

    @evgeniy_lm
    Данная функция определена на двух отрезках
    [- бесконечность; 0[ ]0; +бесконечность]
    Потому как на 0 делить нельзя
    Ответ написан
    Комментировать