Старый 30.03.2011, 18:29   #1   
Mоdеrаtоr
 
Аватар для DeniSS1
 
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33

DeniSS1 вне форума Не в сети
Распознавание жестов мышью

Интересно, как это реализовано в Opera? И сложно ли это сделать в своей программе? Пока единственное, что приходит на ум - разбивать весь экран на поле из квадратов и сравнивать путь, пройденный мышью с зажатой кнопкой по квадратам, с шаблонами. Но при крупных квадратах круг с точки зрения программы будет мало отличаться от квадрата, а при маленьких будет сложно нарисовать жест, попадающий под шаблон. И как быть с масштабированием, если маленький треугольниу и большой треугольник - одно и то же?
  Ответить с цитированием
Старый 30.03.2011, 19:05   #2   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
анализируй не готовую фигуру, а процесс рисования.
  Ответить с цитированием
Старый 30.03.2011, 23:56   #3   
Registered User
 
Сообщений: 1,113
Регистрация: 23.06.2007
Возраст: 58

Hopkroft вне форума Не в сети
Цитата:
Сообщение от Part!zan Посмотреть сообщение
анализируй не готовую фигуру, а процесс рисования.
Можно попробовать замутить с шаблоном направлений.
Например: Влево, влево-вверх, вниз, вправо - вывести пользователю сообщение что он фигнёй страдает
  Ответить с цитированием
Старый 31.03.2011, 15:54   #4   
Форумец
 
Аватар для Spectator
 
Сообщений: 45,531
Регистрация: 27.05.2003
Возраст: 48

Spectator вне форума Не в сети
Почитай, что такое векторизация (vectorization) и интерполяция (interpolation)
  Ответить с цитированием
Старый 31.03.2011, 17:06   #5   
Форумец
 
Аватар для Shtirliz
 
Сообщений: 248
Регистрация: 17.01.2005

Shtirliz вне форума Не в сети
А можно просто не городить велосипед с квадратными колесами. Qt кроссплатформенный, имеет биндинги почти под все популярные ЯП и поддерживает эти ваши жесты из коробки в QGesture.
  Ответить с цитированием
Старый 31.03.2011, 19:32   #6   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
Цитата:
Сообщение от Shtirliz Посмотреть сообщение
Qt кроссплатформенный
это, конечно, здорово, только, имхо, черезчур громоздко.
  Ответить с цитированием
Старый 01.04.2011, 09:45   #7   
Форумец
 
Аватар для Shtirliz
 
Сообщений: 248
Регистрация: 17.01.2005

Shtirliz вне форума Не в сети
Цитата:
Сообщение от Part!zan Посмотреть сообщение
это, конечно, здорово, только, имхо, черезчур громоздко.
Согласен, что громоздко, но ТС не описал ТЗ, так что я, например, могу счиnать, что проект только зарождается и инструментарий для дальнейшей разработки еще не определен
  Ответить с цитированием
Старый 02.04.2011, 21:14   #8   
Форумец
 
Аватар для VanaLuk
 
Сообщений: 477
Регистрация: 25.08.2009
Возраст: 36

VanaLuk вне форума Не в сети
Цитата:
Сообщение от DeniSS1 Посмотреть сообщение
Интересно, как это реализовано в Opera? И сложно ли это сделать в своей программе? Пока единственное, что приходит на ум - разбивать весь экран на поле из квадратов и сравнивать путь, пройденный мышью с зажатой кнопкой по квадратам, с шаблонами. Но при крупных квадратах круг с точки зрения программы будет мало отличаться от квадрата, а при маленьких будет сложно нарисовать жест, попадающий под шаблон. И как быть с масштабированием, если маленький треугольниу и большой треугольник - одно и то же?
это все проблемы распознавания образов. Общая схема такая:
1. Выделяют эталонные классы распознавания;
2. В них выделяют признаки, достаточные для описания любого класса на языке признаков;
3. Строится система принятия решения, которая умеет выделять из поступившего на вход объекта эти признаки и используя их определять степень соответсвия объекта какому-то классу(например применяются нейросети, скрытые марковские модели);

Большую роль в распознавании игрет то, какие признаки вы выделили.
Ну если интересно почитайте про распознавание образов.
  Ответить с цитированием
Старый 02.04.2011, 23:48   #9   
Mоdеrаtоr
 
Аватар для DeniSS1
 
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33

DeniSS1 вне форума Не в сети
Shtirliz, это не тру
VanaLuk, уже нашёл вот это, думаю, то, что нужно.
  Ответить с цитированием
Старый 03.04.2011, 00:27   #10   
Форумец
 
Аватар для VanaLuk
 
Сообщений: 477
Регистрация: 25.08.2009
Возраст: 36

VanaLuk вне форума Не в сети
Нечеткие множества используются в распознавании картинок, которые могут быть повреждены, но впринципе полезно.
Тебе надо четко сформулировать задачу, которую ты хочешь решить.
Например, если ты хочешь уметь различать фигуры геометрические которые рисует пользователей, то как можно поступить:
1. Формируешь эталонные классы (например круг, треугольник, квадрат)
2. Выделяешь признаки, по которым их удобно различать (например количество углов: у круга их нету, у треугольника три, у квадрата 4)
3. Делаешь механизм ввода объектов(фигур) пользователем и поиск признаков (углов)
4. Если тебе пользователь нарисует ромб или параллелограмм, то система найдет, что угла 4 и скажет, что похоже на квадрат. Если нарисует, овал, то система найдет, что нету углов и скажет, похоже на круг. А дальше уже что-то делай взависимости от этого, что надо.

Если не охото со всем этим заморачиваться, то можно сделать проще. Есть готовые нейросети. Смысл нейросетей в том, что ты им подаешь готовые входные и выходные данные, а она себя настраивает по эти данные(обучается). И потом когда ты ей на вход подашь, что-то она по своей настройке сможет сформировать выходные. И впринципе ничего можно не придумавыть, а пользоваться уже готовым. Для рспознавания образов удобно использовать нейросети типа WTA (Winner take all, типа того) и сети Кохонена.
  Ответить с цитированием
Старый 03.04.2011, 00:53   #11   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
нейронные сети для распознавания mouse gestures... это жестко...
  Ответить с цитированием
Старый 03.04.2011, 08:25   #12   
Форумец
 
Аватар для VanaLuk
 
Сообщений: 477
Регистрация: 25.08.2009
Возраст: 36

VanaLuk вне форума Не в сети
Цитата:
Сообщение от Part!zan Посмотреть сообщение
нейронные сети для распознавания mouse gestures... это жестко...
а какая разница? В них нету ничего невероятного и они очень простые в использовании. Проще, чем оценивать, как рисуют это уж точно.
  Ответить с цитированием
Старый 03.04.2011, 10:47   #13   
Глаза пучит
 
Аватар для Нестрашный Му
 
Сообщений: 1,689
Регистрация: 12.07.2003
Возраст: 58

Нестрашный Му вне форума Не в сети
Если честно, вначале представил братановскую распальцовку перед мышью. Извините.
  Ответить с цитированием
Старый 03.04.2011, 13:02   #14   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
Цитата:
Сообщение от VanaLuk Посмотреть сообщение
Проще, чем оценивать, как рисуют это уж точно
это еще поспорить можно... я уж и не говорю о конечном проценте распознавания.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind