MCPcopy Create free account
hub / github.com/biometrics/openbr / writeMatrix

Function writeMatrix

openbr/core/bee.cpp:179–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179void writeMatrix(const Mat &m, const QString &fileName, const QString &targetSigset, const QString &querySigset)
180{
181 bool isMask = false;
182 if (m.type() == OpenCVType<BEE::MaskValue,1>::make())
183 isMask = true;
184 else if (m.type() != OpenCVType<BEE::SimmatValue,1>::make())
185 qFatal("Invalid matrix type, .mtx files can only contain single channel float or uchar matrices.");
186
187 const int elemSize = isMask ? sizeof(BEE::MaskValue) : sizeof(BEE::SimmatValue);
188 const QString matrixType = isMask ? "B" : "F";
189
190 char buff[4];
191 QFile file(fileName);
192 QtUtils::touchDir(file);
193 if (!file.open(QFile::WriteOnly))
194 qFatal("Unable to open %s for writing.", qPrintable(fileName));
195 file.write("S2\n");
196 file.write(qPrintable(targetSigset));
197 file.write("\n");
198 file.write(qPrintable(querySigset));
199 file.write("\n");
200 file.write("M");
201 file.write(qPrintable(matrixType));
202 file.write(" ");
203 file.write(qPrintable(QString::number(m.rows)));
204 file.write(" ");
205 file.write(qPrintable(QString::number(m.cols)));
206 file.write(" ");
207 const int endian = 0x12345678;
208 memcpy(&buff, &endian, 4);
209 file.write(buff, 4);
210 file.write("\n");
211 file.write((const char*)m.data, m.rows*m.cols*elemSize);
212 file.close();
213}
214
215void readMatrixHeader(const QString &matrix, QString *targetSigset, QString *querySigset)
216{

Callers 6

writeMatrixHeaderFunction · 0.70
makeMaskFunction · 0.70
makePairwiseMaskFunction · 0.70
combineMasksFunction · 0.70
FuseMethod · 0.70
writeMethod · 0.50

Calls 5

makeFunction · 0.85
touchDirFunction · 0.85
openMethod · 0.45
writeMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected