Предположим, у Вас есть класс String
:
class String {
public:
String(int n); // allocate n bytes to the String object
String(const char *p); // initializes object with char *p
};
Теперь, если Вы пробуете:
String mystring = 'x';
символ 'x'
будет неявно преобразован в int
и затем String(int)
, конструктора вызовут. Но, это не то, что, возможно, предназначил пользователь. Так, для предотвращения таких условий мы определим конструктора как explicit
:
class String {
public:
explicit String (int n); //allocate n bytes
String(const char *p); // initialize sobject with string p
};
Я не знаком с примером OpenCV letter_recog, но, похоже, это вектор признаков или набор статистических данных об изображении буквы, который используется для классификации будущих вхождений буквы. Результаты сегментации должны оставить у вас двоичную маску с 1 на букве и 0 везде. onpix - это просто общее количество пикселей, попадающих на букву, или, другими словами, сумма вашей двоичной маски.
Большинство остальных значений в списке необходимо рассчитывать на основе набора пикселей со значением 1 в вашей двоичной маске. x и y - это просто положение пикселя. Например, x-bar - это просто выборочное среднее всех положений x всех пикселей, которые имеют 1 в маске. Вы должны легко найти в Интернете ссылки на математические определения среднего,
Меня зовут Антонио Берналь. На странице 3 этой статьи вы найдете хорошее описание каждого значения. Распознавание букв с использованием адаптивных классификаторов голландского стиля .
Если у вас есть сомнения, дайте мне знать. Я пытаюсь заставить этот алгоритм работать, но моя проблема в том, что я не знаю, как масштабировать значения, чтобы они соответствовали диапазону 0-15. У вас есть идеи, как это сделать?
Еще одна ссылка от ученого Google -> Распознавание букв с использованием адаптивных классификаторов голландского стиля