Ответы пользователя по тегу Python
  • Почему цикл внезапно обрывается?

    @Nuchimik
    Ну во-первых, ты не должен изменять список, по которому идешь. Во-вторых, тебе вообще не нужно удалять элементы, нужно сделать на индексах и все
    [sum(var[i:i+2]) for i in range(0, len(var) - 1, 2)]


    Ну или если переписать твой вариант, то
    var = [1,2,3,4,5,6,7,8,9,10,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10]
    result = []
    
    for i in range(0, len(var), 2):
        a = var[i] + var[i+1]
        result.append(a)
    Ответ написан
    2 комментария
  • Как реализовать чтение текста над линиями OpenCV?

    @Nuchimik
    Под документом вы подразумеваете Word, PDF, другой формат или обычное изображение? Или в этих документах содержатся изображения с текстом?

    Если же ваша задача состоит в том, чтобы распознавать текст в определенных местах (т.е. вам не нужен сырой текст, распознанный тессерактом, а важно местоположение этого текста), вы можете следовать следующему алгоритму:
    1. Извлечь изображение с линиями и текстом из вашего документа (этот шаг опционален, потому что не известен формат входящих данных из вашего вопроса).
    2. Применить медианную фильтрацию. Данный вид фильтрации хорошо подойдет для вашей задачи, а также достаточно просто в понимании. О ней вы можете почитать тут и тут (обзор простых фильтров и немного мат. части по фильтрам). Данный фильтр отлично справляется с мелким шумом и не размывает границы, что очень важно для вашей задачи. Пример на opencv
    3. Далее вам необходимо найти линии. Подразумеваю, что они горизонтальные. Но даже если не так, это не страшно. Вы можете использовать преобразования Хафа. Но перед этим, вы должны использовать какой-нибудь детектор границ. Самым распространенным является детектор границ Кэнни (Статья на Хабре). Пример на opencv
    4. По найденным линиям, вы можете определить, необходимо ли повернуть изображение, если линии не строго горизонтальные. Данный шаг необходим для получения более точных результатов от тессертакта.
    5. После чего, просто сортируете в нужном вам порядке линии и по координатам извлекаете текст.


    P.S. Данный алгоритм применим для задачи, которую вы описали в вопросе.
    Ответ написан
    Комментировать
  • Как убрать ошибки"AttributeError: 'coroutine' object has no attribute 'content'" и "AttributeError: 'Message' object has no attribute 'user'"?

    @Nuchimik
    У класса Message нет атрибута user согласно доке доке .
    Но есть атрибут author
    A Member that sent the message. If channel is a private channel or the user has the left the guild, then it is a User instead.

    На счет первой ошибки, согласно опять же доке, метод client.wait_for возвращает строку, а следовательно никакого content у него быть не может. Но в твоем случае ошибка также в том, что не указано await перед сопрограммой (coroutine), которым является метод client.wait_for

    Попробуй так
    message_response = await client.wait_for('message', check=lambda m: m.author== ctx.author)
    Ответ написан
    2 комментария