1 (05.04.2013 16:11:36 отредактировано sergey_777-s)

[РЕШЕНО] Интересует программа которая может сравнивать текущее изображение на екране с эталонным и если эталонное изображение появляется в любой части экрана выполнить заданное действие. Может кто встречал что-либо подобное?

Эталонное что? Вопрос задайте пожалуйста!

Вертикальная развёртка, горизонтальная синхронизация, разрешение, цветность?

Или что?

Букет в хрустальной вазе по красоте сравнимый? Это только глазами.

3

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

4 (25.03.2013 13:25:27 отредактировано karl_muenhgausen)

sergey_777-s пишет:

ну например на примере, есть конкретная ошибка которая выскакивает на рабочем столе

Лог иксов в студию.

Сравнение "фото" на двух экранах это то, чего нельзя хотеть. Да и не нужно.

Опишите русскими буквами, какая перед Вами стоит РЕАЛЬНАЯ задача.

5

описываю реальную задачу: есть таймвивер который следит за другим комьютером, на нем работает много приложений и в зависимости от ошибки которая выскочит на удаленном компьютере нужно запустить определенный процесс на локальном, при этом доступа для установки чего либо на удаленном комьютере нет. Тоесть стоит задача найти програмное обеспечение которое позволяло бы проверять вхождение шаблона в заданное изображение. Похожее я встречал на форуме autoit где стояла задача: если в определенных координатах экрана появляется скажем красный пиксель нужно сделать определенное действие... но  это под винду и немного не то что мне нужно

sergey_777-s пишет:

в зависимости от ошибки

cron + логи

7

говорю же, доступа к удаленной машине нет, только просмотр за ее экраном, это есть в описанной задаче. Задача не стандартная и стандартных решений я для нее пока не встречал. Есть OpenCV, она может такое реализовать, но хотелось бы видить болле простой ее аналог чтобы можна было его приспособить к моей данной задаче.

8 (25.03.2013 14:05:39 отредактировано karl_muenhgausen)

Есть просмотр экрана и нет просмотра логов? Простите, в сказки не верю.

Задача не имеет решения. Точка.

Обращайтесь к волшебникам. Теоретически считать с видеосигнала можно всё, но задействовать авианосец для убийства мухи никто не будет.

9

Вопросс к волшебникам или приблеженным к волшебству: у кого какие мысли?

10 (25.03.2013 16:43:16 отредактировано karl_muenhgausen)

Перехват изменения видеосигнала по заданным параметрама, скрин, анализ скрина, распознавание текста. Всё довольно просто на уровне общей идеи постановки задачи. Тыщ пять  евров постановщику задач за конкретизацию. Тыщ семьсот и кто ни будь организует бригаду, человек на двадцать и это сделает на уровне исходников (причём Линукс тут, Windows или Мак - значения никакого не имеет!), ещё сто - оттестит, ещё стописят - превратит в приложение. Года за три. В общем - фигня вопрос...

Причём почитать логи можно бесплатно! В том числе многими программами...

11

я что-то тоже не понял, о какой программе идет речь. И чего сравнивать, и главное где? ну допустим речь идет о экране, хорошо. экран, в моем понимание если это линукс, то консоль или иксы. допустим консоль, но что надо от консоли? или речь идет о каком-то видеозахвате картинки, скриншот или чего. вообщем как-то не совсем понятно о чем речь.

добрый человек:)
Linux admin PC 3.8.0-23-generic #34-Ubuntu SMP Wed May 29 20:22:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
system admin of unix. i like my job. also i like to catch fish and many other things and english too.
Хочу на пляж)

12 (25.03.2013 18:27:32 отредактировано karl_muenhgausen)

Linux777 пишет:

я что-то тоже не понял, о какой программе идет речь. И чего сравнивать, и главное где? ну допустим речь идет о экране, хорошо. экран, в моем понимание если это линукс, то консоль или иксы. допустим консоль, но что надо от консоли? или речь идет о каком-то видеозахвате картинки, скриншот или чего. вообщем как-то не совсем понятно о чем речь.

Вы слишком в Линуксе!

ТС имеет ввиду, что есть удалённый доступ на машину, но ничего, кроме картинки с него не поступает! Вот такой загадочный удивительный доступ! Как можно из изображения рабочего стола (явно в графике) извлечь ошибку и дистанционно её исправить?

Это я так, бесплатно с украинского на русский перевожу.

13

Linux777 пишет:

я что-то тоже не понял, о какой программе идет речь. И чего сравнивать, и главное где? ну допустим речь идет о экране, хорошо. экран, в моем понимание если это линукс, то консоль или иксы. допустим консоль, но что надо от консоли? или речь идет о каком-то видеозахвате картинки, скриншот или чего. вообщем как-то не совсем понятно о чем речь.

чтобы упростить восприятия задания пускай это будет скриншот, нужно проследить есть ли изображение "Х" частью изображения "У" тоесть скриншота, вот нашел похожее что мне нужно http://recog.ru/blog/opencv/57.html только хотелось бы знать может есть аналоги opencv и (или) данной реализации

sergey_777-s пишет:

есть аналоги opencv

Везде есть opencv. И? Дальше с данными Вы собираетесь делать что?

15

дальше ну скажем Еxpect или Automize, а дальше все что угодно... не особо важно что "дальше" если нет того что нужно "сейчас"

16

ладно, начнем с простого, как можна считать цвет символа по заданным координатам и записать номер цвета в перменную? И далее в цикле опросить присутствует ли пиксель заданного цвета в заданном участке экрана?

17 (26.03.2013 14:11:28 отредактировано neol)

В порядке бреда можно вырезать кусок скриншота и сравнить

compare -metric PSNR img1.jpg img2.jpg difference.png

с заготовленными изображениями ошибок. Последняя команда выдаст число, которое показывает в каких-то попугаях насколько сильно отличаются изображения. Соответственно можно подобрать некие пороговые значения.

18

Попробовал)) для начала уже что-то, спасибо) правда не вырезал скриншот, а делал его с помощью проги shutter, в ней можна задать координаты области которую нужно фотографировать, все бы хорошо, но на создание скрина тратится время и таких скринов нужно делать тьму, было бы прикольнее если бы какая-то прога сравнивала определенную область экрана с шаблоном "НА ЛЕТУ" и если заданная область экрана в определенный момент времени совпала з заданным рисунком-шаблоном то выполнялось бы какое либо действие

19

Напишите скрипт, делов-то.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

20

знал бы как не обращался бы.... то что мне нужно есть под винду filesd.net/kibor/findimage.php вот бы что-то похожее и под линукс..

21

Читаете man shutter, «Искусство написания bash-скриптов», пишете. Это несложно. Можно захватывать окно с определенным заголовком (имхо лучше просто ждать появления этого окна):

#!/bin/sh
while true; do
          if `shutter -w name_of_window`; 
          then
                  what_do_need
         fi
         sleep 5
done

Как-то так ab

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

22

ну такого рода скрипт я напишу,)) но данный скрипт актуален если действие, которое нужно отслеживать возникает в текущей ОС и на данном компьютере, а у меня задача отслеживать все происходящее через окно timeviewer, где нет возможности отследить как называется окно которое появилось в определенный момент на удаленном компе, повторяюсь к удаленному компу доступа нет и устанавливать туда ничего нельзя, есть только тупо картинка в окне timeviewer которая в определенные промежутки времени может зменятся и эти изменения нужно отлавливать и хотябы приблизительно расспознавать локальному компьютеру и делать какие либо действия

23

в принципе, распознавать какая именно ошибка появилась в окне можна по трем определенным пикселям, но вот как можна считывать цвет пикселя по координатам в линукс?

24 (26.03.2013 17:49:06 отредактировано -=Serj=-)

sergey_777-s⇓ пишет:

но вот как можно считывать цвет пикселя по координатам в линукс?

Если на скриншоте, то это не проблема.
В принципе, можно и окно в окне искать, но это медленно.

Да, у меня Ubuntu.
Нет, не глючит.

25

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

26

sergey_777-s⇓ пишет:

в принципе, распознавать какая именно ошибка появилась в окне можна по трем определенным пикселям, но вот как можна считывать цвет пикселя по координатам в линукс?

http://rosettacode.org/wiki/Color_of_a_screen_pixel

27 (27.03.2013 12:18:33 отредактировано -=Serj=-)

Sikuli
Элементарный пример того, что вам надо - http://www.youtube.com/watch?v=vGC9AJqJ … re=related

Да, у меня Ubuntu.
Нет, не глючит.

28

neol пишет:
sergey_777-s⇓ пишет:

в принципе, распознавать какая именно ошибка появилась в окне можна по трем определенным пикселям, но вот как можна считывать цвет пикселя по координатам в линукс?

http://rosettacode.org/wiki/Color_of_a_screen_pixel

Спасибо! нашел там программу http://www.muquit.com/muquit/software/g … 1.1.tar.gz но вот если бы кто помог ее немного переделать чтобы после запуска она сразу выдавала цвет точки в текущих координатах курсора, а не ждала пока пользователь нажмет кнопку мышки... Никак не могу найти в исходнику это ожидание нажатия чтобы его убрать...

29

-=Serj=- пишет:

Sikuli
Элементарный пример того, что вам надо - http://www.youtube.com/watch?v=vGC9AJqJ … re=related

О да, как раз похожее у меня и было в голове изначально, сейчас попробую на эту тему почитать)) Спасибо!!
З.Ы.
Побег панды тоже хорош))))

30

-=Serj=-⇓ пишет:

Sikuli
Элементарный пример того, что вам надо - http://www.youtube.com/watch?v=vGC9AJqJ … re=related

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