Commit ac231de541a0482c5cd462f480ac02903dcfb853

Authored by Scott Klum
1 parent 86cffac4

Minor flip optimizations

openbr/core/opencvutils.cpp
... ... @@ -541,54 +541,60 @@ void OpenCVUtils::group(QList<Rect> &rects, QList<float> &confidences, float con
541 541 }
542 542 }
543 543  
544   -void OpenCVUtils::flip(const br::Template &src, br::Template &dst, int axis)
  544 +void OpenCVUtils::flip(const br::Template &src, br::Template &dst, int axis, bool flipMat, bool flipPoints, bool flipRects)
545 545 {
546   - cv::flip(src, dst, axis);
547   - dst.file = src.file;
  546 + if (flipMat) {
  547 + cv::flip(src, dst, axis);
  548 + dst.file = src.file;
  549 + } else
  550 + dst = src;
548 551  
549   - QList<QPointF> flippedPoints;
550   - foreach(const QPointF &point, src.file.points()) {
551   - // Check for missing data using the QPointF(-1,-1) convention
552   - if (point != QPointF(-1,-1)) {
553   - if (axis == 0) {
554   - flippedPoints.append(QPointF(point.x(),src.m().rows-point.y()));
555   - } else if (axis == 1) {
556   - flippedPoints.append(QPointF(src.m().cols-point.x(),point.y()));
557   - } else {
558   - flippedPoints.append(QPointF(src.m().cols-point.x(),src.m().rows-point.y()));
  552 + if (flipPoints) {
  553 + QList<QPointF> flippedPoints;
  554 + foreach(const QPointF &point, src.file.points()) {
  555 + // Check for missing data using the QPointF(-1,-1) convention
  556 + if (point != QPointF(-1,-1)) {
  557 + if (axis == 0) {
  558 + flippedPoints.append(QPointF(point.x(),src.m().rows-point.y()));
  559 + } else if (axis == 1) {
  560 + flippedPoints.append(QPointF(src.m().cols-point.x(),point.y()));
  561 + } else {
  562 + flippedPoints.append(QPointF(src.m().cols-point.x(),src.m().rows-point.y()));
  563 + }
559 564 }
560 565 }
  566 + dst.file.setPoints(flippedPoints);
561 567 }
562 568  
563   - QList<QRectF> flippedRects;
564   - foreach(const QRectF &rect, src.file.rects()) {
565   - if (axis == 0) {
566   - flippedRects.append(QRectF(rect.x(),
567   - src.m().rows-rect.bottom(),
568   - rect.width(),
569   - rect.height()));
570   - } else if (axis == 1) {
571   - flippedRects.append(QRectF(src.m().cols-rect.right(),
572   - rect.y(),
573   - rect.width(),
574   - rect.height()));
575   - } else {
576   - flippedRects.append(QRectF(src.m().cols-rect.right(),
577   - src.m().rows-rect.bottom(),
578   - rect.width(),
579   - rect.height()));
  569 + if (flipRects) {
  570 + QList<QRectF> flippedRects;
  571 + foreach(const QRectF &rect, src.file.rects()) {
  572 + if (axis == 0) {
  573 + flippedRects.append(QRectF(rect.x(),
  574 + src.m().rows-rect.bottom(),
  575 + rect.width(),
  576 + rect.height()));
  577 + } else if (axis == 1) {
  578 + flippedRects.append(QRectF(src.m().cols-rect.right(),
  579 + rect.y(),
  580 + rect.width(),
  581 + rect.height()));
  582 + } else {
  583 + flippedRects.append(QRectF(src.m().cols-rect.right(),
  584 + src.m().rows-rect.bottom(),
  585 + rect.width(),
  586 + rect.height()));
  587 + }
580 588 }
  589 + dst.file.setRects(flippedRects);
581 590 }
582   -
583   - dst.file.setPoints(flippedPoints);
584   - dst.file.setRects(flippedRects);
585 591 }
586 592  
587   -void OpenCVUtils::flip(const br::TemplateList &src, br::TemplateList &dst, int axis)
  593 +void OpenCVUtils::flip(const br::TemplateList &src, br::TemplateList &dst, int axis, bool flipMat, bool flipPoints, bool flipRects)
588 594 {
589 595 for (int i=0; i<src.size(); i++) {
590 596 br::Template t;
591   - flip(src[i], t, axis);
  597 + flip(src[i], t, axis, flipMat, flipPoints, flipRects);
592 598 dst.append(t);
593 599 }
594 600 }
... ...
openbr/core/opencvutils.h
... ... @@ -103,8 +103,8 @@ namespace OpenCVUtils
103 103  
104 104 // Misc
105 105 void group(QList<cv::Rect> &rects, QList<float> &confidences, float confidenceThreshold, float epsilon);
106   - void flip(const br::Template &src, br::Template &dst, int axis);
107   - void flip(const br::TemplateList &src, br::TemplateList &dst, int axis);
  106 + void flip(const br::Template &src, br::Template &dst, int axis, bool flipMat=true, bool flipPoints=true, bool flipRects=true);
  107 + void flip(const br::TemplateList &src, br::TemplateList &dst, int axis, bool flipMat=true, bool flipPoints=true, bool flipRects=true);
108 108  
109 109 int getFourcc();
110 110 }
... ...