IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Алгоритм распознования образов, основанный на Хеминговой мере близости. c++/Qt
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


Суть такая : есть эталонная картинка с символом, пользователь в поле ввода, рисует свой символ, после чего, программа должна распознать введенный символ и указать процент вероятности.
вот примерно вот как Здесь или тут.
Интерфейс я прикрутил, рисовалку сделал. Но есть одна мне не понятная штука , вот первый шаг алгоритма :
Цитата
Шаг 1. [Преобразование символов] Шаблоны распознаваемых M
символов разбивают на растровые картинки размером 30х30. В том случае,
если на ячейку накладывается символ, ей приписывают единицу, в
противном случае - ноль (см. рис. 2).

Допустим, у меня есть QPixmap размером 231х231, из него я получаю QImage(что бы можно было получить доступ к пикселам) такого же размера. Но тут встает вопрос..как делить картинку на растры 30х30? В смысле, определить цвет-то то я смогу (для того, что бы узнать, находиться символ в растре или нет) , а вот как поделить и отрисовать пиксельную сетку, при учете, что изображение шириной и высотой 231 будет всего 7 полных квадратов 30х30... norespect.gif
Прикладываю методичку к посту..


Прикрепленные файлы
Прикрепленный файл  Распознавание_образов.pdf ( 276.95 килобайт ) Кол-во скачиваний: 2831
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 222
Пол: Мужской
Реальное имя: Andrew

Репутация: -  0  +


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

Вот код, как я это в модельку все "пихаю." и вывожу ..
:
void recognizer::getEtalonArray(QImage image)
{
// qDebug() << image.pixel(0,0) << " " << image.pixel(100,100);
QString str;
QStringList arrayList;
int h=image.height();
int w=image.width();
int matrix[30][30]={0};
int value = 32;
//получим пиксели..
for(int i=0;i<w;++i)
for(int j=0;j<h;++j)
matrix[i/8][j/8]+=(image.pixel(i,j)==4278190080 /*Qt::black*/)? 1 : 0;//определим цвет, 1 если черный, 0 если нет
for(int i = 0; i < 30; i++)
{
for(int j = 0; j < 30; j++)
{
matrix[i][j] /= value;//если делиться value -значит прошел проверку на value% наполнения
cout << matrix[i][j] << " ";
str.append(QString::number(matrix[i][j])); // число в строку засунем
etalonArray.push_back(matrix[i][j]);//etalonArray - qVector <int>
}
cout << "\n";
arrayList << str;//строку в стринг лист
str.clear();
}
etalonArrayModel.setStringList(arrayList);//установим стринг лист для модельки..
}


вот что для буквы 'А'

Прикрепленное изображение

Т.е повернуто на 90 градусов в лево и 2йка откуда-то берутсяblink.gif

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Andrewshkovskii   Алгоритм распознования образов   8.12.2009 19:34
volvo   Я бы сделал так: берем QPicture размером 240*240 (…   8.12.2009 20:00
prednisolone steroids side effec   Prix Cialis   14.11.2021 11:32
Andrewshkovskii   Ну не QPicture ты имел ввиду,а QImage, наверное?:)…   8.12.2009 21:08
can i take tramadol neurontin an   Clomid 2 Comprimes   10.12.2021 6:09
volvo   Бррр... Мы по-моему с тобой на разных языках говор…   8.12.2009 21:22
Andrewshkovskii   Я понимаю, что начинаю опять тебя злить..Но я пыта…   8.12.2009 21:56
volvo   В общем, рисует пользователь изображение на QImage…   8.12.2009 23:12
Andrewshkovskii   Ну я вообще говорил про то, что как строить пиксел…   8.12.2009 23:38
Andrewshkovskii   "Эмпирическим".. путем я попытался найти…   9.12.2009 1:08
Andrewshkovskii   Почему появилась 2ой - понял, из-за matrix[i/8][j/…   9.12.2009 1:36
lasix overnight buy no prescript   Amoxicillin Erowid   18.09.2021 1:17
volvo   :lol: Это я стормозил... Если i это ширина, а j -…   9.12.2009 1:37
Andrewshkovskii   хех..Понятно..Спасибо.но вот мой основной вопрос, …   9.12.2009 1:45
volvo   Почему ты рассматриваешь только один пиксель? Если…   9.12.2009 1:51
Andrewshkovskii   А почему.. +7, тоесть это какая-то переменная от 0…   9.12.2009 2:20
volvo   Ну, потому, что если индекс = 0, то у нас пикселы …   9.12.2009 2:31
Andrewshkovskii   Хм..ну верно, ага, спасибо!   9.12.2009 2:40
should i take 1mg or 5mg of prop   Amoxicillin Drug Facts For Lyme Disease   6.09.2021 13:14
volvo   Так... Прочитал я, как ты прокомментировал код из …   9.12.2009 16:12
Andrewshkovskii   Ну единственное что было не понятно, так это почем…   9.12.2009 17:52
nishaknapp   Why not settling on games that is fun and at the s…   29.07.2022 17:19


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 6:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name