2016-06-05 17 views
0

Надеюсь, вы можете мне помочь. Я пытаюсь использовать 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, работает?

+0

Непонятно, в чем проблема. Можете ли вы добавить изображение, которое не работает? – SSteve

ответ

0

Вы, между тем, я решил проблему самостоятельно, проблема заключалась в том, что маркер был большим для обнаружения, с настройкой по умолчанию. Поэтому мне нужно было только обновить dectorparamenters и пример в заданном задании

Смежные вопросы