Aruco detector is not working for this case. The image seems clear enough to me, it is even able to detect the other markers but I can’t find anything special about the undetected marker (Id 608, third row from the top, kind of in the middle)
This is the code to repro with the image above. Advice will be appreciated.
int main() {
cv::aruco::Dictionary dictionary =
cv::aruco::getPredefinedDictionary(cv::aruco::DICT_5X5_1000);
cv::Mat img = cv::imread("faulty.png", cv::IMREAD_UNCHANGED);
std::vector<int> markerIds;
std::vector<std::vector<cv::Point2f>> markerCorners, rejectedMarkers;
cv::aruco::DetectorParameters detectorParameters =
cv::aruco::DetectorParameters();
cv::aruco::ArucoDetector detector(dictionary, detectorParameters);
detector.detectMarkers(img, markerCorners, markerIds, rejectedMarkers);
cv::aruco::drawDetectedMarkers(img, markerCorners, markerIds);
cv::imwrite("faulty_annotated.png", img);
return 0;
}
The original image can find it here since the forum won’t let me upload two images [LINK]