• Как расчитать какие пиксиле что попадают в линию градуса?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы хотя бы перечитайте эту мешанину опечаток без знаков препинания. Как вас вообще понять можно? Чего вы хотите? Вы бы хоть в пэинте нарисовали чего вам надо, или на бумажке и сфотографировали.
    Поток спутанного сознания какой-то.

    Тангенс. Прочитайте что такое тангенс.
    Ответ написан
    2 комментария
  • Можно ли поставить кнопку в обход транзистора?

    @VT100
    Embedded hardware & software.
    Да, вполне.
    Но надо ещё диод (или иной подавитель выбросов) параллельно катушке реле. Диод - катодом к питанию и анодом к коллектору транзистора.
    Ответ написан
    1 комментарий
  • Можно ли прервать input()?

    Vindicar
    @Vindicar
    RTFM!
    Нет, стандартный input() этого не предусматривает.
    Но есть сторонние варианты, например, pytimedinput.
    Ответ написан
    Комментировать
  • Как можно оптимизировать код для склейки видео по запросу пользователя?

    Vindicar
    @Vindicar
    RTFM!
    a = VideoFileClip("./Video/a.mp4")
    b = VideoFileClip("./Video/b.mp4")

    1. Если ты ловишь себя на создании переменных такого вида, тебе нужна коллекция. Открой для себя словари (dict).

    2. Что мешает подставить введённую строку в имя файла?
    Ответ написан
    1 комментарий
  • Что это за компонент на печатной плате?

    @kalapanga
    Резистор 0 Ом - перемычка в общем.
    Ответ написан
    6 комментариев
  • Не работает TFT. Что делать?

    @evgeniy_lm
    Не работает TFT.
    Судя по видео все прекрасно работает.
    Что делать?
    Правильно указать в скетче размер и ориентацию экрана
    Ответ написан
    Комментировать
  • Как вывести все качества видео одного видео pytube?

    drygdryg
    @drygdryg
    Python-разработчик
    Например, так:
    from pytube import YouTube
    
    yt = YouTube("https://youtu.be/uCNWuSbPnt4")
    resolutions = sorted(
        set(stream.resolution for stream in yt.streams.filter(type='video')),
        key=lambda s: int(s.split('p')[0])
    )
    print(*resolutions, sep='\n')

    Результат выполнения программы:
    144p
    240p
    360p
    480p
    720p
    1080p
    1440p
    2160p
    Ответ написан
    Комментировать
  • Как вывести все качества видео одного видео pytube?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Изучаешь сторонние библиотеки не изучив основ?
    Хм... Ну ок, подскажу: set
    Гугли документацию.
    Ответ написан
    1 комментарий
  • Можно ли через ffmpeg создавать простую кинетическую типографику или движущийся текст?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    FFmpeg позволит вам соединить отдельные кадры в видеоролик и свести этот ролик со звуковой дорожкой, но не более.
    Сами кадры стекстом придётся чем-то рисовать. Причем не только сам текст печатать, но и покадрово раскладывать анимацию.
    Если в приведенном вами примере была "простая уинетическая анимация", то для ее отрисовки готовых стандартных утилит скорее всего нет никаких. Придётся делать модель и рендерить ее.
    В принципе, задача не сложная. В том примере. что вы привели есть две четко выраженные фазы:
    1) добавление слова
    2) анимация масштабирования всего холста так, чтобы добавленное слово заполнило по ширине основную часть экрана.

    На первой фазе слово может быть добавлено просто снизу текущей области отображения с рандомным размером шрифта. Первое слово каждой строки (или предложения) переворачивается на рандомный бок.
    На второй фазе происходит покадровая анимация перемещения, масштабирования и (если надо) поворота всего холста до заполнения центральной части только что добавленным прямоугольником. Несложная математика.
    Да, динамика процесса нелинейная, а первое слово там после немножко еще уменьшается после максимальной фазы, но это уже детали.
    Ответ написан
    4 комментария
  • Как программно декодировать 4-QAM сигнал в диапазоне звуковых частот?

    Griboks
    @Griboks
    Как программно декодировать 4-QAM сигнал

    QAM4 - можно рассматривать как QPSK, которую в свою очередь можно рассматривать как 2xBPSK, т. е. как два независимых сигнала Cos и Sin одинаковой частоты и амплитуды, но сдвинутых по фазе. Иными словами, решить систему уравнений вида sin+cos=A. В любом случае вы вычисляете точку на созвездии, а затем принимаете решение, какой именно из 4 фиксированных эта точка является.

    Как должен работать алгоритм пилот-тона? И как обеспечить синхронизацию
    если во время декодирования фаза начнет "уползать" в сторону?

    Синхросигнал должен выполнять две функции:
    1) Маркировать начало передачи или иным образом синхронизировать такты (фронт волны).
    2) Детектировать условия среды передачи. Зная отправленный и имея принятый синхросигнал, можно определить параметры среды и определить корректирующие коэффициенты для дальнейшего приёма. В данном случае, это будет нулевая фаза и амплитуда.

    Таким образом синхросигнал должен фиксировать все три параметра синусоид. Далее, принимая сигнал с данными, можно уже декодировать их.
    Ответ написан
    Комментировать
  • Где ошибки в коде Python?

    Vindicar
    @Vindicar
    RTFM!
    print = (........)
    Читай, как правильно вызывать функции. Ты создаёшь переменную print, вместо того, чтобы вызвать функцию print().
    Ответ написан
    Комментировать
  • Инвертированы часовые поясы. В чём дело?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    The special area of "Etc" is used for some administrative zones, particularly for "Etc/UTC" which represents Coordinated Universal Time. In order to conform with the POSIX style, those zone names beginning with "Etc/GMT" have their sign reversed from the standard ISO 8601 convention. In the "Etc" area, zones west of GMT have a positive sign and those east have a negative sign in their name (e.g "Etc/GMT-14" is 14 hours ahead of GMT)
    https://en.wikipedia.org/wiki/Tz_database#Area
    Ответ написан
    Комментировать
  • Я преобразовал этот код из py в ехе, но теперь при запуске команды переменная n выводится не в файл, а в командную строк(cmd), что делать?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Открытый в цикле файл надо в цикле же и закрывать после записи в него. Либо в цикле использовать with, тогда автоматически будет закрываться. Либо открыть файл до входа в цикл, а закрыть после выхода из цикла.
    Ответ написан
    Комментировать
  • Как на Python3.10 на хостинге Ubuntu импортировать модули?

    Vindicar
    @Vindicar
    RTFM!
    А) Найди pip от питона 3.10 и запусти его явно. Например, командой pip3.10.
    Б) Используй виртуальное окружение, и ставь пакеты в него. Только убедись, что используешь правильный питон для создания venv.
    Ответ написан
    Комментировать
  • Как создать свой каскад для распознавания объектов?

    Vindicar
    @Vindicar
    RTFM!
    Я создавал лабораторную по этой теме, могу привести инструкцию.
    1. Загрузите набор утилит opencv(гугл-диск, но я советую поискать самостоятельно), в частности opencv_createsamples и opencv_traincascade, а также необходимые им DLL-библиотеки. Распакуйте их в рабочий каталог в корне диска, без русских букв и пробелов в названии. Здесь и далее предполагается, что C:\MyDirName - ваш рабочий каталог.
    2. Подготовьте фото вашего объекта. Используйте контрастный объект без движущихся частей, и желательно не дающий бликов. Для этой цели хорошо подходят логотипы.
    3. Подготовьте отрицательные примеры (не менее 100 изображений). Для этого можно снять короткое видео помещения, затем написать программу, которая разделяет это видео на отдельные кадры. Рекомендуется поместить их в отдельный подкаталог negatives.
    4. Подготовьте файлы, содержащие список файлов в этом каталоге. Их можно сгенерировать следующей парой команд в терминале:
      dir C:\MyDirName\negatives\*.jpg /B /S >C:\MyDirName\negatives\negatives_abs.txt

      dir C:\MyDirName\negatives\*.jpg /B >C:\MyDirName\negatives\negatives_rel.txt

    5. Создайте пустые подкаталоги C:\MyDirName\positives и C:\MyDirName\training. Поместите ваше изображение - положительный пример в каталог C:\MyDirName\ и назовите его positive.jpg. В качестве положительного примера желательно разместить ваш объект на светлом фоне, если он тёмный, и наоборот.
    6. Сгенерируйте положительные примеры с помощью утилиты opencv_createsamples. Команда будет выглядеть примерно следующим образом:
      C:\MyDirName\opencv_createsamples.exe -info positives\info.lst -img positive.jpg -bg negatives\negatives_rel.txt -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1 -bgcolor 0 -bgthresh 0 -w 50 -h 50 -num 100

      Параметры:
      -info - выходной файл.
      -img - входное изображение - положительный пример
      -bg - фоновые изображения. Положительный пример будет наложен на них (в оттенках серого).
      -max?angle - допустимые углы поворота примера. Утилита выполнит перспективное преобразование примера перед наложением.
      -bgcolor и -bgthresh задают яркость (среднее и диапазон изменения) для "прозрачного цвета". Например, если ваш объект на белом фоне, задайте эти параметры равными 240 и 15 (диапазон яркости 225-255). Задав оба параметра равными 0, вы отключите эту функцию и все цвета будут непрозрачными.
      -w и -h задают минимальный размер для размещаемой копии вашего образца.
      -num - количество примеров, которые стоит генерировать. Не должно превышать количество изображений в каталоге.
      Утилита должна вывести ряд сообщений вида "Open background image", а в конце вывести "Done".
    7. Сгенерируйте vec файл следующей командой:
      C:\MyDirName\opencv_createsamples.exe -info positives\info.lst -num 100 -w 20 -h 20 -vec positives\positives.vec

      где info.lst был сгенерирован в ходе пункта 6.
      -w и -h задают минимальный размер для объекта, распознаваемого в ходе работы каскада.
      -num - количество сгенерированных примеров. Столько же, сколько и в пункте 6.
    8. Проведите обучение каскада с помощью утилиты opencv_traincascade. Команда будет иметь примерно следующий вид:
      C:\MyDirName\opencv_traincascade.exe -data training -vec positives\positives.vec -bg negatives\negatives_abs.txt -numStages 100 -numPos 100 -numNeg 100 -featureType haar -w 20 -h 20 -minHitRate 0.999 -maxFalseAlarmRate 0.4 -precalcValBufSize 4048 -precalcIdxBufSize 4048 -numThreads 24 -acceptanceRatioBreakValue 10e-5

      -data - каталог для рабочих данных, который вы создали в пункте 5.
      -vec - индекс, который был создан в пункте 7.
      -bg - файл со списком отрицательных примеров (используйте абсолютные пути!)
      -numPos и -numNeg - количество положительных примеров (пункт 6) и отрицательных примеров (пункт 3).
      -numStages - максимальное количество этапов каскада. Итоговый каскад может содержать меньшее количество этапов.
      -featureType - определяет тип признаков. Признаки Хаара обучаются медленнее, но зато более точны.
      -w и -h задают минимальный размер для объекта, распознаваемого в ходе работы каскада. Должны строго совпадать с заданными в пункте 7.
      -minHitRate и -maxFalseAlarmRate задают качество работы одного каскада.
      -acceptanceRatioBreakValue определяет момент, когда каскад перестаёт обучаться.
      -precalcValBufSize и -precalcIdxBufSize задают потребление памяти процессом.
      -numThreads определяет число рабочих потоков.
    9. По итогам обучения в каталоге training должен появиться файл cascade.xml, который можно загружать так же, как типовые каскады, поставляемые с opencv. Обратите внимание, что если вы хотите запустить обучение с начала, нужно очистить содержимое каталога training, иначе утилита будет дообучать существующий каскад.
    Ответ написан
    5 комментариев
  • Как циклом Python for пройти несколько (сотен) range?

    Vindicar
    @Vindicar
    RTFM!
    Ответ написан
    Комментировать
  • Как убрать нумерацию в строке python?

    Lord_of_Rings
    @Lord_of_Rings
    Python developer
    from re import sub
    
    print(sub(r'[^\w\s]+|[\d]+', '', '1. Дизайнер 2. Программист 3. Таргетолог '))
    Ответ написан
    Комментировать
  • Почему функция y=x^x начинает возрастать, начиная с аргумента 1/e?

    Maksim_64
    @Maksim_64
    Data Analyst
    Потому что точка (1/e, f(1/e)), это критическая точка. Критическая точкой называется точки где функция либо не дифференцируема, либо производная функции равна нулю.
    Соответственно наша функция, y = x^x, ее производная будет x^x*(ln(x) + 1). далее приравниваем производную к нулю x^x*(ln(x) + 1) = 0 и решаем для x. Решением данного уравнения будет 1/e Подставляем 1/e в исходное функцию и получаем это вы уже нашли округленно 0.692. (1/e,0.692) - Критическая точка. А в критических точках функция меняет свое направление, то есть если до этого шла на убавление проходя через критическую точку она пойдет на возрастание и наоборот.
    И так ответ Потому что (1/e, f(1/e)) Является критической точкой.
    Также далее посредством тестов можно найти является ли критическая точка локальным минимумом или максимум в нашем случае глобальным потому что она одна. В данном случае тест легко покажет что это точка глобальный минимум. А минимум слева убывает проходит через критическую точку и начинает возрастать.
    ДОПОЛНЕНИЕ К ответу.
    Выходит, что до 1/e функция убывает, а после - возрастает. Откуда берется такая связь?

    Здесь дело в том что данная критическая точка как указал выше является минимумом в контексте вашего вопроса даже не важно глобальным или локальным. Что бы критическая точка называлась минимум производная функции должна быть отрицательной слева от критической точки и положительной справа от критической точки если подставим в производную (ее я привел в самом начале) число не много меньшее чем критическая точка то мы получим отрицательное значение (что значит функция убывает) а если не много большее то положительное значит (функция возрастает). Поскольку функция убывает слева от критической точки и возрастает после нее это и есть определение минимума. Мы сейчас математическим методом нашли минимум. То есть ваша функция убывает до критической точки и возрастает после нее. Потому что точка является минимумом (в данном случае глобальным). Так будет не много точнее.
    Ответ написан
    Комментировать
  • Как получить PNG из NumPy array без сохранения?

    Maksim_64
    @Maksim_64
    Data Analyst
    PIL.Image.Open() это для открытия файлов. То что вы спрашиваете должно звучать так как конвертировать numpy массив в PIL.Image объект. Для это существует метод PIL.Image.fromarray(array), Возможно придется сделать rehape у массива, возможно придется задать какие то дополнительные параметры у метода fromarray. Но ваш вопрос решается этим методом.
    Ответ написан
    2 комментария