为什么 aruco 在我的图像中检测不到标记
Why aruco doesn't detect markers in my image
我生成了一系列 aruco 标记 DICT_4X4_50
并打印了它们,但是当我在此图像上启动检测器时,它不起作用。虽然标记相当明显:
int main(int argv, char** argc)
{
Mat frame = imread(argc[1], CV_LOAD_IMAGE_COLOR);
vector<int> markerIds;
vector<vector<Point2f>> markerCorners, rejectedCandidates;
Ptr<aruco::Dictionary> markerDictionary = aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME::DICT_4X4_50);
aruco::detectMarkers(frame, markerDictionary, markerCorners, markerIds);
aruco::drawDetectedMarkers(frame, markerCorners, markerIds);
imshow("Webcam", frame);
waitKey(0);
}
是图像不够好还是有一些参数我可以修改?
我已经检查了 rejectedCandidates
,我发现它正在检测标记,但由于某种原因被拒绝了!
所以我转向了另一个标记,即 Apriltags,它提供了更好的结果。我不知道哪个库是最好的,但继续尝试看看哪个适合你。
我生成了一系列 aruco 标记 DICT_4X4_50
并打印了它们,但是当我在此图像上启动检测器时,它不起作用。虽然标记相当明显:
int main(int argv, char** argc)
{
Mat frame = imread(argc[1], CV_LOAD_IMAGE_COLOR);
vector<int> markerIds;
vector<vector<Point2f>> markerCorners, rejectedCandidates;
Ptr<aruco::Dictionary> markerDictionary = aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME::DICT_4X4_50);
aruco::detectMarkers(frame, markerDictionary, markerCorners, markerIds);
aruco::drawDetectedMarkers(frame, markerCorners, markerIds);
imshow("Webcam", frame);
waitKey(0);
}
是图像不够好还是有一些参数我可以修改?
我已经检查了 rejectedCandidates
,我发现它正在检测标记,但由于某种原因被拒绝了!
所以我转向了另一个标记,即 Apriltags,它提供了更好的结果。我不知道哪个库是最好的,但继续尝试看看哪个适合你。