Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.11.2012, 15:06
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 1  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
По умолчанию Распознать наличие рукописной "галочки" в определенном квадрате

Добрый день. Есть такая задача - нужно распознать наличие рукописной "галочки" в определенном квадрате.
Как видно на представленных ниже скриншотах, есть 10 квадратов в которых могут находиться "галочки".
Как можно найти в каком из квадратов они есть?
Абсолютная точность не нужна.
Как мне кажется, нужно разбить данную BitmapData на сектора, выбрать пиксели в каждом секторе и найти, есть ли в нем пиксели с RGB отличной от бело-серого фона-шума.
Собственно вопрос, в какую сторону копать, чтобы алгоритм был довольно шустр и как отделить бело-серый шум?
---

---

---
__________________
Я просто добрый шутник.

Старый 26.11.2012, 15:17
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 2  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
вам надо посчитать средний цвет картинки. Потом его вычесть из каждого пикселя и посчитать сколько пикселей с отклонением больше определённого порога в квадрате
__________________
:)

Старый 26.11.2012, 15:29
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 3  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Что-то вроде этого?
Код AS3:
var b:BitmapData = new BitmapData(); //тут наша картинка
var v:Vector.<uint> = b.getVector(new Rectangle(0, 0, 100, 100));//получаем список пикселей из 1 квадрата
var avg:uint = this._getSumm(v) / v.length; // получаем средний цвет (складываем все цвета и делим на общее кол-во цветов), наверное это будет затратно по ресурсам
var length:uint = v.length;
for(var i:uint = 0; i < length; i++){
var color:uint = v[i];
color - avg
//а что дальше?
}
Может стоит посмотреть в сторону getColorBoundsRect?
Только как указать правильно значение цвета если фон там не чисто белый.
__________________
Я просто добрый шутник.

Старый 26.11.2012, 16:30
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
такой вариант:
Код AS3:
// картинка
var bmp:Bitmap = new embedImage() as Bitmap;
//addChild(bmp);
var bmd:BitmapData = bmp.bitmapData;
 
// клетка
var rec:Rectangle = new Rectangle(166, 1, 48, 32);
//var rec:Rectangle = new Rectangle(118, 1, 48, 32);
 
// битмап цвета фона
var bmd1:BitmapData = new BitmapData(rec.width, rec.height, false, 0xFFFFFF);
// рисуем в него клетку с BlendMode.DIFFERENCE 
var mtrx:Matrix = new Matrix();
mtrx.translate(-rec.x, -rec.y);
bmd1.draw(bmd, mtrx, null, BlendMode.DIFFERENCE);
 
// смотрим по синему каналу с какой-то точностью есть ли что-то
var tol:int = 32;
var num:int = bmd1.threshold(bmd1, bmd1.rect, new Point(), ">", tol, 0, 0xFF);
trace( "num : " + num );

Старый 26.11.2012, 16:39
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 5  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Спасибо, с попробовал сделать по среднему цвету, на примере этого - http://www.flasher.ru/forum/archive/.../t-123478.html
Сейчас тестирую, пока точность попадания 100%
__________________
Я просто добрый шутник.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.