Надеюсь, вы можете мне помочь. Я пытаюсь использовать Aruco для поиска углов окна. Поэтому добавлен маркер для каждого угла. Но когда я попытался обнаружить маркер, они не найдены. Если он снимает фотографию со смартфона, а затем попытается обнаружить маркер на фото, он будет работать. Вот минимальный рабочий пример кода:Маркер OpenCv Aruco не обнаружен, когда я разбираю мат непосредственно
#include <opencv2/opencv.hpp>
#include <stdlib.h>
#include <string>
#include <opencv2/aruco.hpp>
using namespace cv;
using namespace std;
using namespace aruco;
Dictionary dictionary;
int markerSize = 200;
vector<int> ids;
vector< vector<Point2f> > corners;
Mat addMarkertoImage(const Mat image){
Mat retImage, marker0;
image.copyTo(retImage);
drawMarker(dictionary, 0, markerSize, marker0, 1);
unsigned char value;
//Add marker to top left corner
for(int i = 0; i<marker0.rows; i++)
for(int j = 0; j<marker0.cols; j++){
value = marker0.at<uchar>(i,j);
Vec3b colorValue = Vec3b(value, value, value);
retImage.at<Vec3b>(i,j) = colorValue;}
return retImage;
}
int main(){
Mat image, image_marker;
dictionary = getPredefinedDictionary(cv::aruco::DICT_6X6_250);
image = imread("bild.jpg", 1);
image_marker = addMarkertoImage(image);
detectMarkers(image_marker, dictionary, corners, ids);
drawDetectedMarkers(image_marker, corners, ids);
imshow("Display Image", image_marker);
waitKey(0);
return 0;
}
Любые идеи, почему это не работает? Но с фотографией, сделанной моей камерой iPhone, работает?
Непонятно, в чем проблема. Можете ли вы добавить изображение, которое не работает? – SSteve