Я написал код для создания собственных. В качестве входных данных я взял 3 изображения разных людей. Я вычислил собственные векторы и собственные значения. Поскольку принимаются только 3 изображения, я выбираю все три собственных вектора, каждый из которых имеет размер 36000x1, в качестве основных компонентов. Когда я изменяю собственные векторы, чтобы увидеть изображение, я получаю собственное имя только для одного человека. Остальные изображения почти полностью пусты.Собственные функции в OpenCV с использованием C++
Я извлекая каждый собственный вектор из covevec (матрица собственных векторов ковариационной матрицы)
col1=covevec.col(0);
col2=covevec.col(1);
col3=covevec.col(2);
Я перекроить их следующим образом:
if (!col1.isContinuous() && !col2.isContinuous() && !col3.isContinuous())
{
col1=col1.clone();
col2=col2.clone();
col3=col3.clone();
}
Mat final1,final2,final3;
final1=col1.reshape(0,200);
final2=col2.reshape(0,200);
final3=col3.reshape(0,200);
Это как final2 выглядит следующим образом:
И другие два выглядят так:
Что я делаю неправильно?
вам нужно гораздо больше данных, а также вы должны нормализовать() ваши изображения перед шагом p12 – berak
Да .... увеличение данных! – KeenLearner