Filter for blobs that fit on a circle
Using RANSAC to find combinations of blobs that fit on a circle.
Taking ~1ms per iteration of blob detection and filteration.
Signed-off-by: Milind Upadhyay <milind.upadhyay@gmail.com>
Change-Id: I231e921135aca217a8715c7a7421829eb557119f
diff --git a/y2022/vision/camera_reader.cc b/y2022/vision/camera_reader.cc
index f466c8b..e9688ea 100644
--- a/y2022/vision/camera_reader.cc
+++ b/y2022/vision/camera_reader.cc
@@ -58,11 +58,12 @@
cv::Mat::zeros(cv::Size(image_mat.cols, image_mat.rows), CV_8UC1);
cv::Mat ret_image =
cv::Mat::zeros(cv::Size(image_mat.cols, image_mat.rows), CV_8UC3);
+ cv::Point centroid;
BlobDetector::ExtractBlobs(image_mat, binarized_image, ret_image,
- filtered_blobs, unfiltered_blobs, blob_stats);
- // TODO(milind): use actual centroid
+ filtered_blobs, unfiltered_blobs, blob_stats,
+ centroid);
TargetEstimateT target = TargetEstimator::EstimateTargetLocation(
- blob_stats[0].centroid, CameraIntrinsics(), CameraExtrinsics());
+ centroid, CameraIntrinsics(), CameraExtrinsics());
auto builder = target_estimate_sender_.MakeBuilder();
builder.CheckOk(builder.Send(TargetEstimate::Pack(*builder.fbb(), &target)));