![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Похожую тему я уже писал, но задача немного изменилась.
На delphi7 собираюсь делать скриншоты из окна другой программы. Это окно будет иметь фиксированный размер. В этом окне будут 3 области размерами 57x124 pix. Может быть до примерно 1000 вариантов изображений этих участков. Допустим я смогу собрать базу всех этих вариантов изображений в bmp. Совпадение позиционирования изображений с оригиналом должно быть очень высоким примерно( разница в пикселях расположения) от 0 до 3х 4х по х и y, но думаю будет реально 1-2. Но сдесь еще проблемка которая ухудшит точность половины картинок. Около 500 картинок будут иметь худшую точность ввиду того что в программе они имею анимацию ( некоторое поблескивание и так далее, вполне значительное). Вопрос в том каким простым способом сравнивать изображения. Я не разбираюсь в вопросах распознавания образов. Мой вариант №1: Просто в каждом рисунке в базе прочитать каждый пиксель и просуммировать все значения цветов по отдельности R,G и B. А при сравнении осуществлять такой же анализ RGB и путем сравнения этих 3х цифр c некоторым приближением определять нужный рисунок. Но пока что у меня нет базы и я не знаю будет ли достаточная точность для однозначного определения рисунков. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Что за "другая программа"? Зачем так извращаться с ней?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Что значит зачем? мне нужно получить скриншот окна другой программы.
Для моего "проэктика" , я дал небольшое описание в одной из тем, но это не касается этой темы. |
![]() |
![]() |
![]() |
#4 | ||
Заблокирован
Регистрация: 24.11.2014
Сообщений: 721
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Потому что скорее всего есть более простые варианты решения задачи, чем скриншоты и распознавание.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Обнаружил еще проблему.
В рисунка базы формат bmp 24 бит, при скриншотах из delphi 32 бит. Делаю скриншоты так: Код:
Сохранять изображение мне тольок для отладки нужно, нужно чтобы в destBitmap оно было 24 битное, для сравнения. Последний раз редактировалось Illusiony; 02.02.2015 в 21:33. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Есть и другие варианты. Например, может быть можно средствами винапи достать из нее что нужно.
Что за программа-то такая уникальная? Что она делает?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Это программа игры Hearthstone. Мне нужно данные о том какие 3 карты в ней в данный момент показаны для выбора на арену.
Это пояснение врятли поможет. Как туда передаются данные от сервера я не представляю. Логи доступные анализировал, достал тока информацию о картах во время боя, а эту информацию не нашел. Цитата:
В той программе половина изображений могут быть с анимацией. Я никак не могу на ту программу ( игра Hearthstone) както повлиять. Я лишь перемещаю окно в координаты 0,0 делаю скриншот. Но чтобы сравнивать изображения я не могу отследить в каие доли секунды нужно делать скриншот чтобы получить максимальную точность ииза анимации.( сама анимация это поблескивание и небольшое повиливание в стороны) Я и не собирался с этим заморачиваться, надеясь что точности хватит для различения изображений. Я не знаю поможет ли мне winapi и не разбираюсь в этом. Сами картинки в программе выполняют роль кнопок, их рамки изменяют цвет при наведении и кликабельны при нажатии по ним. Последний раз редактировалось Illusiony; 02.02.2015 в 22:03. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
![]()
Как в 24 бит преобразовать нашел.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Распознавание путем сравнения с прототипом | Illusiony | Общие вопросы Delphi | 13 | 09.01.2015 18:49 |
Более быстрый и простой способ | Gefo | PHP | 1 | 23.12.2012 10:12 |
Нейронные сети для распознавания образов | ELL | Помощь студентам | 0 | 29.03.2012 21:03 |
Самый простой способ работы с файлами | wwe2012 | Общие вопросы C/C++ | 4 | 28.03.2011 22:12 |
Самый простой способ сравнения. | Mixasik | Общие вопросы Delphi | 6 | 21.04.2010 12:04 |