imgboxer/src/main.cpp
2024-09-21 22:03:11 -04:00

43 lines
1.0 KiB
C++

#include "include/main.hpp"
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
// Check for invalid invocation.
if (argc != 2) {
printf("%s IMAGE\n", argv[0]);
return -1;
}
// Read in image.
cv::Mat img = img_get(argv[1]);
// Check the image actually exists.
if (img.empty()) {
std::cout << "File not found: " << argv[1] << std::endl;
return -1;
}
// Threshold the image (in case it's not already binary).
cv::Mat binimg = preprocess_threshold(img);
vector<vector<Point>> contours = bound_contours(binimg);
vector<Rect> boxes = bound_boxes(contours);
for (size_t i = 0; i < contours.size(); i++) {
rectangle(img, boxes[i], Scalar(255, 255, 255), 1);
drawContours(img, contours, (int)i, Scalar(255, 255, 255), 1, LINE_8); }
std::string label_fname = reext(argv[1]);
yolo_write_labels(label_fname, boxes);
// Show image with bounding boxes.
// imshow("Bounding Boxes", img);
// waitKey(0);
return 0;
}