|
0 / 0 / 0
Регистрация: 15.09.2022
Сообщений: 10
|
|
Поиск картинки в картинке15.09.2022, 17:58. Показов 6571. Ответов 10
Метки нет (Все метки)
Есть скрипт (функция) на питоне поиска маленькой картинки внутри другой большой картинки, нужно помочь найти с ее помочью внутри большой картинки несколько маленьких картинок (с этим в принципе у меня проблем нет) и расписать порядок в каком они находятся внутри большой картинки (как реализовывать мне понятно, но хочется красивую реализацию). вообщем задача совершенно простейшая
0
|
|
| 15.09.2022, 17:58 | |
|
Ответы с готовыми решениями:
10
Поиск картинки в картинке Поиск картинки в другой картинке |
|
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,766
|
|
| 15.09.2022, 21:25 | |
|
DmitryADM, Используй OpenCV.
0
|
|
|
0 / 0 / 0
Регистрация: 15.09.2022
Сообщений: 10
|
|
| 15.09.2022, 21:32 [ТС] | |
|
да естественно, я ее использую и у меня вообще нет проблемы с нахождением картинки в картинке. у меня проблема обработать одновременно несколько массивов одновременно.
0
|
|
|
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,766
|
|
| 15.09.2022, 21:42 | |
|
DmitryADM, пример нужно видеть, что значит несколько массивов одновременно?
Несколько образцов или несколько одинаковых объектов или несколько картинок?
0
|
|
|
0 / 0 / 0
Регистрация: 15.09.2022
Сообщений: 10
|
|
| 15.09.2022, 21:58 [ТС] | |
|
первый раз пишу тут. не знаю можно ли писать что пытаюсь взломать простейшую капчу. но на этом собственно изучаю питон.
умею находить маленькую картинку(где любая из цирф от 1 до 9) в большой картинке-капче. получаю скриптом координату крайне левую-верхнюю точку вхождения. записываю в массив(список) все эти координаты для каждой из 9 цифр, поэтому получу 9 таких массивов собственно мой вопрос(и мой затык) в том как потом отсортировать по возрастанию объединенный массив из этих 9 массивов, чтобы например скрипт помнил что если на пером месте стоят координаты из 1го массива, значит на 1м месте в капче стоит цифра 1. и т.д. ,те. в итоге правильно разгадать капчу. вот сам мой скрипт import cv2 import numpy as np coordinate_array = [] def find_target_picture_in_big_picture(targe t_picture, big_picture): # программа ищет заданное изображение в большой картинке # при обнаружении на выход выводятся координаты (по оси x) верхней левой точки вхождения # Загрузить исходное изображение и шаблон изображения для поиска img = cv2.imread(big_picture,1) # OpenCV обрабатывает исходное изображение и создает версию в оттенках серого img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # Загрузить шаблон изображения для поиска # Записать размер шаблона изображения template = cv2.imread(target_picture,0) # Обработка и поиск совпадений в изображениях в оттенках серого. Затем используйте те же координаты для восстановления и вывода в исходное изображение. # cv2.matchTemplate(image, templ, method[, result]) res = cv2.matchTemplate (img_gray, template, cv2.TM_CCOEFF_NORMED) #TM_CCOEFF_NORMED - это стандартное сопоставление коэффициентов корреляции, общий метод сопоставления с шаблоном сопоставления # Установить порог threshold = 0.95 # Выходное разрешение больше 70% loc = np.where( res >= threshold) # Используйте координаты в изображении в градациях серого, чтобы отметить исходное изображение RGB # coordinate_array = [] for pt in zip(*loc[::-1]): cv2.rectangle(img, pt, (pt[0], pt[1]), (7,249,151), 2) # print(pt[0]) # type(pt[0]) coordinate_array.append(pt[0]) # Показать изображение # for i in coordinate_array: # print(i) cv2.imshow('matchTemplate.jpg', img) # сохранить изображение cv2.imwrite('matchTemplate.jpg', img) return coordinate_array cv2.waitKey(0) # return img find_target_picture_in_big_picture('9.jp g', '1196591.jpg') coordinate_array_without_dubles = list(set(coordinate_array)) coordinate_array_without_dubles.sort() for i in coordinate_array_without_dubles: print(i) #print() find_target_picture_in_big_picture('1.jp g', '1196591.jpg') coordinate_array_without_dubles = list(set(coordinate_array)) coordinate_array_without_dubles.sort() for i in coordinate_array_without_dubles: print(i) #print (pt[0]) # Показать изображение #cv2.imshow('matchTemplate.jpg', img) # сохранить изображение #cv2.imwrite('matchTemplate.jpg', img) #cv2.waitKey(0)
0
|
|
|
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,766
|
|
| 15.09.2022, 22:37 | |
|
DmitryADM, вот смотри: у тебя в конечном итоге есть массив названий шаблонов, от 0 до 9, которые в цикле ищутся на большой картинке [0,1,2,3...9]. Есть массив координат для каждой цифры [[x1, y1],[x2,y2], [NaN, NaN],[x4,y4]...]
Далее делаешь np.argsort массива координат, по x (axis=0 или 1, разберись) и получаешь индексы. Эти индексы применяешь к первому массиву и получаешь числа в нужном порядке. Про дубли: лучше делать threshold, а затем connectedcomponentwhithstats, он выдает центроиды и боксы сразу и без необходимости удалять дубли. Про Jpg: jpg - формат с потерями, не используй его, используй png. Если из большого jpg кропнуть кусочек и сохранить в jpg, то он не совпадет попиксельно с тем что есть на большой картинке. Добавлено через 3 минуты Можно, конечно, еще тессеракт задействовать, если картинку инвертировать предварительно...
1
|
|
|
0 / 0 / 0
Регистрация: 15.09.2022
Сообщений: 10
|
|
| 15.09.2022, 22:48 [ТС] | |
|
нет тессеракт мне не интересно, я эту простую капчу взял для начала, с прицелом на будущее так же распознавать чисто графическую капчу типа такой как на вложении:
0
|
|
|
0 / 0 / 0
Регистрация: 15.09.2022
Сообщений: 10
|
|
| 15.09.2022, 23:33 [ТС] | |
|
u235, спасибо большое за помощь, я пишу скрипт по заработку на просмотре рекламы (фактически на разгадывании капчи в конце). как допишу поделюсь с тобой в качестве благодарности.
0
|
|
|
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,766
|
|||||||||||
| 16.09.2022, 07:12 | |||||||||||
Сообщение было отмечено DmitryADM как решение
Решение
DmitryADM, собственно как-то так:
3
|
|||||||||||
|
0 / 0 / 0
Регистрация: 15.09.2022
Сообщений: 10
|
|
| 16.09.2022, 07:30 [ТС] | |
|
вот это высший пилотаж!)
100 баллов из 10.
0
|
|
|
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,766
|
|
| 16.09.2022, 07:37 | |
|
Спасибо.
0
|
|
| 16.09.2022, 07:37 | |
|
Помогаю со студенческими работами здесь
11
Php поиск картинки в картинке Найти координаты элемента на экране (поиск картинки на картинке) Поиск информации по игре в виде картинки (на картинке кликабельные 2d модели) Размещение картинки на картинке Перемещение картинки по картинке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
. . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|