Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lis Serebra
Сообщений: n/a
#1

MNIST распознавание знаков - C++

09.01.2013, 23:26. Просмотров 694. Ответов 0
Метки нет (Все метки)

учу с++ с opencv. Должна предоставить программу по решению судоку. У меня уже определяется поле, но при попытки работать с MNIST идёт ошибка памяти. Что в этом виновата переменная size я уже поняла. Но не понимаю почему. Код честно взяла отсюда (http://pastebin.com/SzThnTUM) и понимаю не совсем всё. size выходит за рамки размера и даже неправильно высчитывается, но я не понимаю, на что и как поменять. Надеюсь, меня поймут и помогут, потому что добрый профессор послал в интернет, а сдавать уже скоро.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include "digitrecognizer.h"
 
bool DigitRecognizer::train(char *trainPath, char *labelsPath)
{
    FILE *fp = fopen(trainPath, "rb");
    FILE *fp2 = fopen(labelsPath, "rb");
 
    if(!fp || !fp2)
        return false;
 
    // Read bytes in flipped order
    int magicNumber = readFlippedInteger(fp);   
    numImages = readFlippedInteger(fp);
    numRows = readFlippedInteger(fp);
    numCols = readFlippedInteger(fp);
 
    // printf("Magic number: %4x\n", magicNumber);
    //printf("Number of images: %d\n", numImages);
    //printf("Number of rows: %d\n", numRows);
    //printf("Number of columns: %d\n", numCols);
 
    fseek(fp2, 0x08, SEEK_SET);
 
    if(numImages > MAX_NUM_IMAGES) numImages = MAX_NUM_IMAGES;
 
    int size = numRows*numCols;
    CvMat *trainingVectors = cvCreateMat(numImages, size, CV_32FC1);
    CvMat *trainingClasses = cvCreateMat(numImages, 1, CV_32FC1);
 
    memset(trainingClasses->data.ptr, 0, sizeof(float)*numImages);
 
    BYTE *temp = new BYTE[size];
    BYTE tempClass=0;
    for(int i=0;i<numImages;i++)
    {
        fread((void*)temp, size, 1, fp);
        fread((void*)(&tempClass), sizeof(BYTE), 1, fp2);
 
        trainingClasses->data.fl[i] = tempClass;
        
        for(int k=0;k<size;k++)
            trainingVectors->data.fl[i*size+k] = temp[k]; ///sumofsquares;
    }
 
    knn->train(trainingVectors, trainingClasses);
    fclose(fp);
    fclose(fp2);
 
    return true;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 23:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос MNIST распознавание знаков (C++):

Определить количество вхождений строки из n знаков в строку из k знаков - C++
Всем доброй ночи ребят. Вы последняя надежда:( помогите пожалуйста 2 задачи решить последняя ночь( сразу препод говорил, что контрольную...

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

Распознавание чисел и знаков операций (/ - * +) с картинки - Matlab
Нужна помощь в распознавании чисел и знаков операций (/ - * +) с картинки. подскажите, что можно использовать для распознавания цифр? ...

Построить множество встречающихся в последовательности знаков арифметических операций и знаков препинания - Pascal ABC
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются ...

Вывести 5 последних знаков до десятичной запятой и 5 первых знаков числа - Python
Собсна сабж: 5 последних знаков до десятичной запятой и 5 первых знаков после десятичной запятой для числа (1+sqrt(3) )^n n ...

Visual Basic 2013 сложение чисел, округление до 2 знаков после запятой, отбрасывание знаков - VBA
Как сложить несколько чисел из TextBox, округлить их, отбросить знаки после запятой? показать результат в TextBox

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 23:26
Привет! Вот еще темы с ответами:

Найти все варианты размещения знаков арифметических операций на месте вопросительных знаков в выражении - C (СИ)
Составить программу, которая бы нашла все варианты размещения знаков арифметических операций +,-,* на месте вопросительных знаков в...

Дан текст из букв и знаков. Подсчитать общее количество цифр и знаков ‘+’,’-‘,’*’, входящих в текст - Delphi
МНОЖЕСТВА.. Дан текст из букв и знаков. Подсчитать общее количество цифр и знаков ‘+’,’-‘,’*’, входящих в текст.

Дан текст из букв и знаков. Подсчитать общее количество цифр и знаков ‘+’,’-‘,’*’, входящих в текст. - Turbo Pascal
Дан текст из букв и знаков. Подсчитать общее количество цифр и знаков ‘+’,’-‘,’*’, входящих в текст.

Программа для вывода на экран знаков препинания(с указанием их АСКИ-кода) знаков препинания - Pascal
Напишите и отладьте программу для вывода на экран(с указанием их АСКИ -кода) знаков препинания


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru