]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - src/debug.cpp
94cba134c0e411cfd5682fa9bf90c8c726d9421d
[hercules2020/kcf.git] / src / debug.cpp
1 #include "debug.h"
2 #include <string>
3
4 std::ostream &operator<<(std::ostream &os, const DbgTracer::Printer<cv::Mat> &p)
5 {
6     IOSave s(os);
7     os << std::setprecision(DbgTracer::precision);
8     os << p.obj.size << " " << p.obj.channels() << "ch ";// << static_cast<const void *>(p.obj.data);
9     os << " = [ ";
10     constexpr size_t num = 10;
11     for (size_t i = 0; i < std::min(num, p.obj.total()); ++i)
12         os << p.obj.ptr<float>()[i] << ", ";
13     os << (num < p.obj.total() ? "... ]" : "]");
14     return os;
15 }
16
17 std::ostream &operator<<(std::ostream &os, const DbgTracer::Printer<ComplexMat> &p)
18 {
19     IOSave s(os);
20     os << std::setprecision(DbgTracer::precision);
21     os << "<cplx> " << p.obj.size() << " " << p.obj.channels() << "ch "; // << p.obj.get_p_data();
22     constexpr int num = 10;
23     for (uint s = 0; s < p.obj.n_scales; ++s) {
24         uint ofs = s * p.obj.rows * p.obj.cols * p.obj.n_channels / p.obj.n_scales;
25         os << " = [ ";
26         for (int i = 0; i < std::min(num, p.obj.size().area()); ++i)
27             os << p.obj.get_p_data()[ofs + i] << ", ";
28         os << (num < p.obj.size().area() ? "... ]" : "]");
29         os << std::endl << std::string(20, ' ');
30     }
31     return os;
32 }