本文整理汇总了C++中FileList::append方法的典型用法代码示例。如果您正苦于以下问题:C++ FileList::append方法的具体用法?C++ FileList::append怎么用?C++ FileList::append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileList
的用法示例。
在下文中一共展示了FileList::append方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pairwiseCompare
void pairwiseCompare(File targetGallery, File queryGallery, File output)
{
qDebug("Pairwise comparing %s and %s%s", qPrintable(targetGallery.flat()),
qPrintable(queryGallery.flat()),
output.isNull() ? "" : qPrintable(" to " + output.flat()));
if (distance.isNull()) qFatal("Null distance.");
if (queryGallery == ".") queryGallery = targetGallery;
QScopedPointer<Gallery> t, q;
FileList targetFiles, queryFiles;
retrieveOrEnroll(targetGallery, t, targetFiles);
retrieveOrEnroll(queryGallery, q, queryFiles);
if (t->files().length() != q->files().length() )
qFatal("Dimension mismatch in pairwise compare");
TemplateList queries = q->read();
TemplateList targets = t->read();
// Use a single file for one of the dimensions so that the output makes the right size file
FileList dummyTarget;
dummyTarget.append(targets[0]);
QScopedPointer<Output> realOutput(Output::make(output, dummyTarget, queryFiles));
realOutput->set_blockRows(INT_MAX);
realOutput->set_blockCols(INT_MAX);
realOutput->setBlock(0,0);
for (int i=0; i < queries.length(); i++)
{
float res = distance->compare(queries[i], targets[i]);
realOutput->setRelative(res, 0,i);
}
}
示例2: files
FileList* DataTransfer::files() const {
FileList* files = FileList::create();
if (!canReadData())
return files;
for (size_t i = 0; i < m_dataObject->length(); ++i) {
if (m_dataObject->item(i)->kind() == DataObjectItem::FileKind) {
Blob* blob = m_dataObject->item(i)->getAsFile();
if (blob && blob->isFile())
files->append(toFile(blob));
}
}
return files;
}
示例3: enroll
FileList enroll(File input, File gallery = File())
{
FileList files;
qDebug("Enrolling %s%s", qPrintable(input.flat()),
gallery.isNull() ? "" : qPrintable(" to " + gallery.flat()));
if (gallery.name.isEmpty()) {
if (input.name.isEmpty()) return FileList();
else gallery = getMemoryGallery(input);
}
TemplateList data(TemplateList::fromGallery(input));
if (gallery.contains("append"))
{
// Remove any templates which are already in the gallery
QScopedPointer<Gallery> g(Gallery::make(gallery));
files = g->files();
QSet<QString> nameSet = QSet<QString>::fromList(files.names());
for (int i = data.size() - 1; i>=0; i--) {
if (nameSet.contains(data[i].file.name))
{
data.removeAt(i);
}
}
}
if (data.empty())
return files;
// Store steps for ProgressCounter
Globals->currentStep = 0;
Globals->totalSteps = data.length();
// Trust me, this makes complete sense.
// We're just going to make a pipe with a placeholder first transform
QString pipeDesc = "Identity+GalleryOutput("+gallery.flat()+")+ProgressCounter("+QString::number(data.length())+")+Discard";
QScopedPointer<Transform> basePipe(Transform::make(pipeDesc,NULL));
CompositeTransform * downcast = dynamic_cast<CompositeTransform *>(basePipe.data());
if (downcast == NULL)
qFatal("downcast failed?");
// replace that placeholder with the current algorithm
downcast->transforms[0] = this->transform.data();
// call init on the pipe to collapse the algorithm (if its top level is a pipe)
downcast->init();
// Next, we make a Stream (with placeholder transform)
QString streamDesc = "Stream(Identity, readMode=DistributeFrames)";
QScopedPointer<Transform> baseStream(Transform::make(streamDesc, NULL));
WrapperTransform * wrapper = dynamic_cast<WrapperTransform *> (baseStream.data());
// replace that placeholder with the pipe we built
wrapper->transform = downcast;
// and get the final stream's stages by reinterpreting the pipe. Perfectly straightforward.
wrapper->init();
Globals->startTime.start();
wrapper->projectUpdate(data,data);
files.append(data.files());
return files;
}
示例4: readSigset
/**** BEE ****/
FileList BEE::readSigset(const File &sigset, bool ignoreMetadata)
{
FileList fileList;
#ifndef BR_EMBEDDED
QDomDocument doc(sigset.fileName());
QFile file(sigset.resolved());
bool success;
success = file.open(QIODevice::ReadOnly); if (!success) qFatal("Unable to open %s for reading.", qPrintable(sigset));
success = doc.setContent(&file);
file.close();
if (!success) {
qWarning("Unable to parse %s.", qPrintable(sigset));
return fileList;
}
QDomElement docElem = doc.documentElement();
if (docElem.nodeName() != "biometric-signature-set")
return fileList;
QDomNode subject = docElem.firstChild();
while (!subject.isNull()) {
// Looping through subjects
QDomNode fileNode = subject.firstChild();
QDomElement d = subject.toElement();
QString name = d.attribute("name");
while (!fileNode.isNull()) {
// Looping through files
File file("", name);
QDomElement e = fileNode.toElement();
QDomNamedNodeMap attributes = e.attributes();
for (int i=0; i<attributes.length(); i++) {
const QString key = attributes.item(i).nodeName();
const QString value = attributes.item(i).nodeValue();
if (key == "file-name") file.name = value;
else if (!ignoreMetadata) file.set(key, value);
}
// add bounding boxes, if they exist (will be child elements of <presentation>)
if (fileNode.hasChildNodes()) {
QList<QRectF> rects;
QDomNodeList bboxes = fileNode.childNodes();
for (int i=0; i<bboxes.length(); i++) {
QDomElement bbox = bboxes.at(i).toElement();
qreal x = bbox.attribute("x").toDouble();
qreal y = bbox.attribute("y").toDouble();
qreal width = bbox.attribute("width").toDouble();
qreal height = bbox.attribute("height").toDouble();
rects += QRectF(x, y, width, height);
}
file.setRects(rects);
}
if (file.name.isEmpty()) qFatal("Missing file-name in %s.", qPrintable(sigset));
fileList.append(file);
fileNode = fileNode.nextSibling();
}
subject = subject.nextSibling();
}
#else // BR_EMBEDDED
(void) sigset;
(void) ignoreMetadata;
#endif // BR_EMBEDDED
return fileList;
}
示例5: enroll
FileList enroll(File input, File gallery = File())
{
FileList files;
qDebug("Enrolling %s%s", qPrintable(input.flat()),
gallery.isNull() ? "" : qPrintable(" to " + gallery.flat()));
if (gallery.name.isEmpty()) {
if (input.name.isEmpty()) return FileList();
else gallery = getMemoryGallery(input);
}
bool multiProcess = Globals->file.getBool("multiProcess", false);
bool fileExclusion = false;
// In append mode, we will exclude any templates with filenames already present in the output gallery
if (gallery.contains("append") && gallery.exists() ) {
FileList::fromGallery(gallery,true);
fileExclusion = true;
}
Gallery * temp = Gallery::make(input);
qint64 total = temp->totalSize();
Globals->currentStep = 0;
Globals->totalSteps = total;
QScopedPointer<Transform> basePipe;
QString pipeDesc = "GalleryOutput("+gallery.flat()+")+ProgressCounter("+QString::number(total)+")+Discard";
if (!multiProcess) {
basePipe.reset(Transform::make(pipeDesc,NULL));
CompositeTransform * downcast = dynamic_cast<CompositeTransform *>(basePipe.data());
if (downcast == NULL) qFatal("downcast failed?");
downcast->transforms.prepend(this->transform.data());
if (fileExclusion) {
Transform * temp = Transform::make("FileExclusion(" + gallery.flat() + ")", downcast);
downcast->transforms.prepend(temp);
}
// call init on the pipe to collapse the algorithm (if its top level is a pipe)
downcast->init();
}
else {
pipeDesc = "ProcessWrapper("+transformString+")"+pipeDesc;
if (fileExclusion)
pipeDesc = "FileExclusion(" + gallery.flat() +")" + pipeDesc;
basePipe.reset(Transform::make(pipeDesc,NULL));
}
// Next, we make a Stream (with placeholder transform)
QString streamDesc = "Stream(readMode=StreamGallery)";
QScopedPointer<Transform> baseStream(Transform::make(streamDesc, NULL));
WrapperTransform * wrapper = dynamic_cast<WrapperTransform *> (baseStream.data());
// replace that placeholder with the pipe we built
wrapper->transform = basePipe.data();
// and get the final stream's stages by reinterpreting the pipe. Perfectly straightforward.
wrapper->init();
Globals->startTime.start();
TemplateList data, output;
data.append(input);
wrapper->projectUpdate(data, output);
files.append(output.files());
return files;
}