• Как найти одно изображение на другом изображении?

    @Vindicar
    Терминология для гуглинга: "Локализация объекта методами компьтерного зрения".
    В качестве инструментария можешь использовать opencv. Для питона это pip пакет python-opencv (импортируется под именем cv2).

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

    Подходы существуют разные. Если не требуется дикоре быстродействие, то можно использовать детектор SIFT.
    Тогда у тебя будет алгоритм вида:
    0. Создаёшь детектор (функция cv2.SIFT.create()) и матчер (можно cv2.BFMatcher(), он тормознутый но простой в использовании).
    1. Грузишь образец искомого объекта и преобразуешь изображения (палитра серого, и т.п.)
    2. Вызываешь метод детектора .detectAndCompute(), чтобы получить найденные особые точки (углы и т.п.) и их описание.
    3. Повторяешь шаги 1,2 для анализируемого изображения (сцены).
    4. У матчера вызываешь метод .knnMatch() c n=2. Это даст тебе 2 лучших совпадения между образцом и сценой по каждой особой точке.
    5. Можно просто брать лучшее совпадение, а можно отсеять те особые точки, у которых два ближайших совпадения слишком похожи - они отсеялись.
    Так или иначе, у тебя должен получиться список пар точек вида "точка на образце - найденная похожая точка на сцене".
    6. Используешь функцию cv2.findHomography() или одну из родственных ей, чтобы найти матрицу преобразования. Грубо говоря, она позволит пересчитать позицию пикселя на изображении образца в позицию пикселя на изображении сцены.
    Примерно так, если представить это наглядно (чтобы получить такую картинку, нужно еще несколько шагов, но она передаёт идею).
    homography_findobj.jpg
    7. Дальше ты можешь использовать эту матрицу как хочешь. Например, возьми координаты центра объекта на изображении-образце, и используй её вместе с cv2.perspectiveTransform(), чтобы найти, где на сцене координаты точки центра объекта. Взяв ещё точку (в углу или на краю), сможешь найти ориентацию.

    Проблема в том, что этот подход работает ТОЛЬКО если в сцене не более одного похожего объекта.

    Код не привожу, набросай черновик сам, тогда можно будет его обсудить и подкорректировать. Если что, в сети можно много найти инфы по использованию opencv для решения этой задачи.
    Ответ написан
    4 комментария
  • Как я могу через python код управлять комменатариями на YouTube?

    Levman5
    @Levman5
    print(“Hello World!”)
    Используй selenium
    Ответ написан
    Комментировать
  • Сколько будет 0/0?

    rule
    @rule
    кратко о себе
    смешно выглядит фраза «делить на 0 нельзя». Смешно, что эту условность (и еще ряд других) вводят в младших класах, чтоб не забивать детям голову лишним и сконцентрировать внимание на узком направлении. Потом-же, в той-же школе эту условность убирают, когда доходит дело до изучения пределов.
    Но так как в младших классах у учеников было больше рвения к учебе и они слушали более внимательно, то условное ограничение у них остаеться а новые знания про пределы нет. И вот выходит человек из учебного завдеения с ложными знаниями. Печально.
    Ответ написан
    Комментировать
  • Как при нажатии на картинку сменить размер или цвет картинки в Pygame?

    @xdgadd
    ML/Python/Cpp
    1) Поместите свой код в тег <code></code>
    2) Воспользуйтесь методом collidepoint класса Rect:
    ...
    if event.type == pygame.MOUSEBUTTONDOWN:
        # Получаем координаты курсора
        pos = pygame.mouse.get_pos()
        
        # Получаем прямоугольник
        rect = my_image.get_rect()
    
        # Проверяем попадание точки в прямоугольник
        if rect.collidepoint(pos):
            # Если точка попала - изменяете размер картинки
            change_image_size()
    ...
    Ответ написан
    Комментировать
  • Почему не импортируется модуль requests?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    requests не поддерживает Python 3.10
    Ответ написан
    5 комментариев
  • Как обрезать пустое пространство над шрифтом в css?

    @MeMoJlor
    Мне кажется вы не нормализовали CSS стили. Но вряд ли это поможет. Как вариант использовать отрицательное значение margin-top, а лучше найти другой шрифт. А вообще, это частое явление и чтобы оно не бросалось в глаза, можно просто уменьшить шрифт/увеличить высоту навбара, чтобы было незаметно.
    Ответ написан
    1 комментарий
  • Почему не устанавливается модуль turtle?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Вы в Python 3.9 устанавливаете библиотеку для Python 2.7
    Ответ написан
    Комментировать
  • Почему tkinter выдает ошибку на функцию add_command?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что нет такой функции.
    Ответ написан
    2 комментария
  • Python выдает ошибку TypeError: string indices must be integers. Почему?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что в переменных lexer и token строки, а строку нельзя индексировать другой строкой по очевидным причинам.
    Ответ написан
    Комментировать
  • Python выдает ошибку TypeError: string indices must be integers. Почему?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Просто
    if token == "=":

    Вы перебираете каждый символ в слове, и потом обращаетесь к слову по индексу, только вместо индекса у вас символ получается
    Ответ написан
    Комментировать