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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать класс множества http://www.cyberforum.ru/cpp-beginners/thread757315.html
Объект «множество символов заданной мощности». Предусмотреть возможность операции присваивания, объединения двух множеств, вывода на печать элементов множества, а так же метод отвечающий на вопрос – принадлежит ли указанное значение множеству. Конструктор должен позволить создавать объекты без и с начальной инициализацией. Мощность множества задается при создании объекта.
C++ Одномерный массив. Найти индекс максимума, сумму элементов после первого положительного Задача 2. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер максимального по модулю элемента массива; 2) сумму элементов массива, расположенных после первого положительного элемента. Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале , а потом – все остальные и распечатать их адреса.Правила форума... http://www.cyberforum.ru/cpp-beginners/thread757307.html
Разработать конструктор, деструктор C++
Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Привести программу (int main), использующий объекты разработанного класса: Объект «рационально не сократимых дробь, представлен парой целых чисел». Конструктор должен позволить создавать объекты без и с начальной...
Одномерный массив. Найти количество элементов больше заданного. Найти произведение элементов за максимумом C++
Задача 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, больших C; 2) произведение элементов массива, расположенных после максимального по модулю элемента. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элемен-ты, а потом – все положительные (элементы, равные 0, считать положительными) и распечатать...
C++ Задан двумерный массив N x M. Найти в нем подмассив 3 х 3, сумма элементов которого максимальна http://www.cyberforum.ru/cpp-beginners/thread757290.html
Задан двумерный массив N x M. Найти в нем подмассив 3 х 3, сумма элементов которого максимальна.
C++ Перегрузить для класса оператор == немогу написать продолжение кода... нужно написать : перегрузить для данного класса оператор ==, вычисляющий пробег автомобиля с максимально заполненным бензобаком. вот сам код: #include "StdAfx.h" #include <conio.h> #include <string> подробнее

Показать сообщение отдельно
Lis Serebra
Сообщений: n/a
09.01.2013, 23:26     MNIST распознавание знаков
учу с++ с 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru