Задать вопрос
  • Как отыскать подкартинку в картинке средствами python?

    FanaticExplorer
    @FanaticExplorer
    чел
    Через opencv можно:
    import cv2
    import numpy as np
    
    image = cv2.imread('image.jpg', 0)
    template = cv2.imread('part.jpg', 0)
    
    res = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)
    
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
    
    threshold = 0.8
    if max_val > threshold:
        top_left = max_loc
        print("Подкартинка найдена:", top_left)
    else:
        print("Подкартинка не найдена")

    Со значением threshold надо будет поиграться, что бы работал более корректно.
    Ответ написан
    2 комментария
  • Как определить координаты картинки у которой нет дубликатов, либо с наименьшими повторениями?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Смотрите в сторону хеширующих функций, например реализация phash Вас спасет - https://en.m.wikipedia.org/wiki/Perceptual_hashing
    Ну и книжку порекомендую "цифровая обработка изображений" Гонсалес и Вудс.
    Ответ написан
    2 комментария
  • Возможно ли обучить ИИ определять данные анализов по фото?

    Тут больше задача на OCR и машинное зрение похожа.
    Нужно определить границы таблицы и распознать текст в ячейках.
    Можно попробовать Opencv + tesseract.

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    стандартная практика передать первым аргументом путь к файлу который хотят открыть.
    Это действует практически для всех программ.

    start "C:/Program Files/MATLAB/R2022b/bin/matlab.exe Work.m"
    Ответ написан
    Комментировать
  • Библиотеке os выводит непонятные символы, что делать?

    Vindicar
    @Vindicar
    RTFM!
    Не "библиотека os", а процесс, который ты запускаешь. В какой кодировке он выводит текст, знает разве что он сам (вероятно, или windows-1251, или cp866). Но почти наверняка не в юникоде, с которым работает питон.
    Так что кодировку придётся выяснять опытным путём и самому полученную строку перекодировать.
    Ответ написан
    Комментировать
  • Как из любой точки мира передать сообщение на ESP32 или любую ардуинку без установления подключения?

    nava2002
    @nava2002
    Инженер
    Учитывая все вышесказанное:
    Думаю что данную задачу удобнее можно решить на Raspberry Рi (или аналогов).
    Raspberry Рi имеет достаточные возможности для запуска Вэб сервера ( на Linux ) для организации внешнего доступа через интернет, а также имеет аппаратные выходы (по типу ESP32) для управления любыми устройствами низкого уровня.
    Дополнительно появится возможность не только "отправлять" сообщения, а и получать "ответы" о текущем состоянии оборудования.
    Ответ написан
    Комментировать
  • Как исправить ошибку Scikit-learn?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну код писал не ты, просто взял откуда-то да и все. Ошибка элементарная. У тебя где то он должен подсветить не совпадают размерности массивов. (1,4901) - это матрица с одним рядом и 4901 колонкой, а второй массив одномерный. Предположу что ошибка происходит при рисовании графика, это matplotlib выдает такую ошибку.
    Я тебе сделал маленький пример с идентичной ошибкой.
    X = np.arange(0,4901)
    y = 1.2 * X + 3
    X = X.reshape(1,4901)
    plt.plot(X,y)

    Вот мой код выдаст такую же ошибку. Как поправить нужно привести размерности массивов, к виду при котором с ними можно работать. ну например либо plt.plot(X.reshape(-1,1),y) сработает либо распрямить X сработает plt.plot(X.ravel(),y). И так и так сработает. Ищи на каком plot'e у тебя ошибка и приводи размерности к подходящему виду.
    Ответ написан
    Комментировать
  • Как делить куб пополам?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище Корень

    Я вместо ответа дам тебе несколько советов.

    Первое. Тема Ферма является толстым троллингом для всех кто знает математику. И эксперты qna мне кажется ощущают от тебя усталость. Ты достаточно много продуцируешь потока сознания и это не идет на пользу. Лучше напиши 1 вопрос в неделю но обдумай. Второе Есть разница между операцией деления "/" в Python и в языках C++/Scala. Результат разный. Можно получить 5/2 = 2.5 или можно получить целое 2. Это очень важно для тех кто читает код. И это кардинально меняет взгляд на твою формулу которую ты пишешь в самом начале. Поэтому всегда обозначай язык разработки. Это поможет читающим понять формулу. Иначе будут обиды и непонимания. И если ты тегируешь топик Математикой то не стоит писать всякие исходники с inserts. Это раздражает. Раздели свои проблемы на части. Так будет лучше. Третье. Если ты выступаешь медиатором между Microsoft Bing и прочими чатами то - обозначь это. Пускай это будет джентльменское соглашение. Я всегда пишу если мой ответ был получен с GPT. Тоесть я разделяю за что я лично отвечаю и за что всякие AI.
    Ответ написан
    5 комментариев
  • Как удалить часть контура так, чтобы заливка не обрезалась?

    Kiriniy
    @Kiriniy
    Графический и веб-дизайнер
    Разделите объект на обводку и фон, например через expand, а потом ножом отрежьте лишнее. Потом можно получившейся контур ещё раз через expand преобразовать, на всякий случай.
    Ответ написан
    Комментировать
  • Не открываются фотографии после копирования с телефона на флешку, что делать?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Откройте ваш файл в hex редакторе и увидите там, что весь файл состоит из нулей. Единственный способ восстановить фото, это искать нейросети (очень дорогие!) и писать им что было изображено на фото. И нейросети пусть генерируют фото. Пока (имеется ввиду, пока не изобрели машину времени) восстановить такие фото абсолютно никак.
    Ответ написан
    Комментировать
  • Как делить куб пополам?

    @AlexSku
    не буду отвечать из-за модератора
    У двух кубов нет a, b, c.
    Проверка такая:
    a**3 == 2 * b**3
    Ответ написан
  • Почему пустой tuple занимает больше памяти, чем tuple с None?

    В случае b у тебя не tuple, а просто None.
    Чтобы получился tuple из одного элемента - нужно добавить запятую
    b = (None,)
    b.__sizeof__() # 32
    Ответ написан
    1 комментарий
  • Как убрать "дрожание" курсора, двигающегося с помощью детектирования руки?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Правильнее всего будет встроить в программу пид-регулятор https://ru.m.wikipedia.org/wiki/%D0%9F%D0%98%D0%94...
    Ответ написан
    1 комментарий
  • Есть 2USB mini USB кабель с дополнительным питанием, Вопрос, если на второй кабель подать Ипулсное напряжение 5 Вольт, не сгорит?

    @VT100
    Embedded hardware & software.
    Лучше так не делать.
    Если внешнему диску не хватает мощности от единственного порта USB, то лучше подключить его через хаб с внешним питанием.
    Ответ написан
    Комментировать
  • Как правильно сгенерировать дату в Pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну смотри, первое ты говоришь количество строк 90, при этом формируешь временную последовательность, на 90 дней при этом у тебя есть желание иметь данные с повторяющемеся днями по количеству артистов их их песен, в примере ты приводишь 3 артиста по 3 песни на каждые то есть 9 ЗАПИСЕЙ на каждый день или 90 * 9 = 810 СТРОК.

    Второе ты показываешь желаемый результат для одно дня только надо так делать для временной последовательности. И в нем собственно ты и подтверждаешь, мою мысль выше. Что строчек, будет больше чем 90.

    Код, конечно я написал, грязноват он можно подправить конечно, я на это время тратить не буду.

    import pandas as pd
    import numpy as np
    
    songs = {
        'ANNA ASTI': ['Девочка танцуй','Грустный дэнс','Гармония'],
        'Три дня дождя': ['Демоны','Где ты','Перезаряжай'],
        'MACAN': ['Кино','Пополам','Бенз'],
    }
    
    NUMBER_OF_DAYS = 3
    LENGTH_OF_FINAL_FRAME = sum(len(value) for value in (songs.values())) * NUMBER_OF_DAYS
    
    dates = pd.date_range('2023-01-01', periods=NUMBER_OF_DAYS, freq='1D')
    
    artists = []
    for key, value in songs.items():
        artists += [key] * len(value)
    
    dates_and_artists = []
    for date in dates:
        for artist in artists:
            dates_and_artists.append((date,artist))
    
    songs_arr = np.array(list(songs.values()) * NUMBER_OF_DAYS).reshape(-1,1)
    
    
    
    
    data = np.concatenate([np.array(dates_and_artists), 
                           songs_arr, 
                           np.random.randint(3000,1_000_000,LENGTH_OF_FINAL_FRAME).reshape(-1,1)], axis=1)
    
    df = pd.DataFrame(data=data, columns=['Date','Artist','Track','Start'])
    df


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

    Код для любого количества артистов и песен у них ну и количество дней тоже сколько надо задашь. NUMBER_OF_DAYS. Поменяй да и все.

    ДОПОЛНЕНИЕ К ОТВЕТУ
    Как и обещал, подработал я свое решение, так как оно должно быть, меньше кода, быстрее и больше функциональности.

    from itertools import chain
    import pandas as pd
    import numpy as np
    
    
    songs = {
        'ANNA ASTI': ['Девочка танцуй','Грустный дэнс','Гармония'],
        'Три дня дождя': ['Демоны','Где ты','Перезаряжай'],
        'MACAN': ['Кино','Пополам','Бенз'],
    }
    
    NUMBER_OF_DAYS = 3
    NUMBER_OF_SONGS_PER_DAY = sum(len(value) for value in (songs.values()))
    STARTING_DATE = '2023-01-01'
    
    dates = pd.date_range(STARTING_DATE, periods=NUMBER_OF_DAYS, freq='1D')
    artists = list(chain(*[[key] * len(value) for key, value in songs.items()]))
    songs_per_day = list(chain(*songs.values()))
    
    index = pd.MultiIndex.from_product([dates,artists],names=['Date','Artist'])
    
    df = pd.DataFrame({
        'Songs':songs_per_day * NUMBER_OF_DAYS,
        'Start':np.random.randint(3000,1000000,NUMBER_OF_DAYS * NUMBER_OF_SONGS_PER_DAY),
        
    }, index=index).reset_index()
    
    df


    Вот это хороший читабельный pandas код, теперь я спокоен, а то вопрос то решил, но просто в лоб, а не так как следует.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Да кто ж его знает двоечник ты или отличник.
    Ты сам не знаешь какую из этих тем ты можешь сделать?

    2-3 года ты чему-то учился, тебя 2-3 года тебя чему-то учили.
    Но ты считаешь что рандомные люди из интернета наугад скажут тебе в чем ты лучше разберешься?

    Бери то, что дешевле или проще достать и с чем у тебя есть хоть какой-то опыт. Зря отказываешься от ардуино если уже с ним работал.
    Ответ написан
    Комментировать
  • Что делать, когда счетчик считает неправильно?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Что делать, когда счетчик считает неправильно?

    Изучать алгоритмы, структуры данных, язык программирования, разбирать, как работает предложенный вам код, осваивать дебаггер, дебажить код и исправлять. Когда уткнетесь в конкретную проблему - приносите.
    Ответ написан
    5 комментариев
  • Можно ли реализовать оптический транзистор?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • Что делать если при открытии png файла с прозрачным фоном через OpenCV появляются гличи?

    Vindicar
    @Vindicar
    RTFM!
    Во-первых, скриншот в студию.
    Во-вторых, IMREAD_GRAYSCALE отрывает файлу канал прозрачности напрочь. Что там на самом деле было в прозрачных пикселях - фз.
    Попробуй IMREAD_UNCHANGED, тогда у тебя будет дополнительный канал прозрачности, который ты можешь сам принять к сведению - например, залить все прозрачные пиксели нужным цветом, или ещё что.
    Ответ написан
    Комментировать