Написах код за създаване на собствени лица. Взех 3 изображения на различни хора като вход. Изчислих собствените вектори и собствените стойности. Тъй като са направени само 3 изображения, аз избирам всичките три собствени вектора, всеки с размер 36000x1, като основни компоненти. Когато преформирам собствените вектори, за да видя изображението, получавам собствено лице само за един човек. Останалите изображения са почти празни.
Извличам всеки собствен вектор от 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:
А другите две изглеждат така:
какво правя грешно