implement naive packer

This commit is contained in:
Fabien Freling 2022-02-15 21:18:50 +01:00
parent 8698cf8160
commit e31683d2fe
8 changed files with 114 additions and 78 deletions

View file

@ -14,8 +14,8 @@ int main(int argc, const char* argv[]) {
if (argc < 6 or (argc - 2) % 4 != 0) {
std::cerr
<< "Usage: " << argv[0] << " path/to/image"
<< " x1 y1 x2 y2 [...]\n"
<< "x/y points must be grouped by 4 to define bounding boxes\n";
<< " [x y width height ...]\n"
<< "x/y/w/h points must be grouped by 4 to define bounding boxes\n";
return 1;
}
@ -35,15 +35,16 @@ int main(int argc, const char* argv[]) {
std::vector<freling::BoundingBox> bboxes;
bboxes.reserve((argc - 2) / 4);
while (i < argc) {
const uint32_t x1 = atoi(argv[i]);
const uint32_t y1 = atoi(argv[i + 1]);
const uint32_t x2 = atoi(argv[i + 2]);
const uint32_t y2 = atoi(argv[i + 3]);
bboxes.push_back(freling::BoundingBox({x1, y1, x2, y2}));
const int32_t x = atoi(argv[i]);
const int32_t y = atoi(argv[i + 1]);
const uint32_t w = atoi(argv[i + 2]);
const uint32_t h = atoi(argv[i + 3]);
bboxes.push_back(freling::BoundingBox({x, y, w, h}));
i += 4;
}
std::optional<Frame> regions = pack(*in_frame, bboxes);
std::vector<freling::BoundingBox> packed_bboxes;
std::optional<Frame> regions = pack(*in_frame, bboxes, packed_bboxes);
return 0;
}