Вкратце, я хотел бы суммировать значения в мат-матрице. На данный момент у меня есть мат 256 на 1 (который на самом деле является вектором, но формат мата будет важен позже). Чтобы увидеть, что происходит, я пытаюсь напечатать его в цикле.
`
calcFractile(Mat* in){
cout << "Input = " << *in << endl;
cout << "?!?! ";
for(int k = 0; k<in->rows; k++){
cout << static_cast<int>(in->at<uint8_t>(0,k)) << ", ";
sum += (int)in->at<uint8_t>(0,k);
}
cout <<endl;
}
`
Я совершенно не понимаю, почему, но строка cout ‹‹ "Input[...] дает правильный результат, но цикл, обращающийся к отдельным элементам, дает разные результаты. Проблема не только в значении, но и в позициях в массиве.
Мат, который я прохожу, представляет собой гистограмму изображения, гистограмма одноканальная, 256 бинов.
uint8_t
вызывает некоторые проблемы. Я предполагаю, что если входная матрица является гистограммой, то она имеет какой-то другой тип (не имеет смысла хранить значения меньше 256). Для получения более подробных ответов необходимо указать SSCCE. - person Sigroad   schedule 17.11.2013