void ASMModel::saveToFile(ModelFile& file) { ShapeModel::saveToFile(file); file.writeInt(localFeatureRad); file.writeInt(ns); int i,j; int rows, cols; file.writeInt(rows = iCovarG[0][0].rows); file.writeInt(cols = iCovarG[0][0].cols); for (i=0;i<=pyramidLevel;i++){ for (j=0;j<nMarkPoints;j++){ for (int ii=0;ii<rows;ii++) for (int jj=0;jj<cols;jj++) file.writeReal(iCovarG[i][j](ii, jj)); } } file.writeInt(rows = meanG[0][0].rows); file.writeInt(cols = meanG[0][0].cols); for (i=0;i<=pyramidLevel;i++){ for (j=0;j<nMarkPoints;j++){ for (int ii=0;ii<rows;ii++) for (int jj=0;jj<cols;jj++) file.writeReal(meanG[i][j](ii, jj)); } } }
void ShapeModel::saveToFile(ModelFile &file) { file.writeInt(pyramidLevel); file.writeInt(nMarkPoints); file.writeInt(nTrain); file.writeInt(nShapeParams); file.writeReal(searchYOffset); file.writeReal(searchXOffset); file.writeReal(searchWScale); file.writeReal(searchHScale); file.writeReal(searchStepAreaRatio); file.writeReal(searchScaleRatio); file.writeReal(searchInitXOffset); file.writeReal(searchInitYOffset); file.writePCA(pcaShape); for (int i=0;i<nMarkPoints*2;i++) file.writeReal(meanShape(i, 0)); // Info for BTSM file.writeReal(sigma2); file.writePCA(pcaFullShape); shapeInfo.writeToFile(file); ////! Mean shape after aligning //ShapeVec meanShape; }
void ShapeInfo::writeToFile(ModelFile &f) const { f.writeInt(nContours); for (int i=0;i<nContours+1;i++) f.writeInt(contourStartInd[i]); for (int i=0;i<nContours;i++) f.writeInt(contourIsClosed[i]); f.writeInt(pointInfo.size()); for (size_t i=0;i<pointInfo.size();i++){ f.writeInt(pointInfo[i].connectFrom); f.writeInt(pointInfo[i].connectTo); f.writeInt(pointInfo[i].type); f.writeInt(pointInfo[i].pathId); } }