2014-02-12 3 views
0

Пример кода:Возможно ли создать и использовать массив MatIterators?

#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv2/video/video.hpp> 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main() 
{  
    Mat a = Mat::zeros(4,4,CV_8UC1); 
    Mat b = Mat::zeros(4,4,CV_8UC1); 

    MatIterator_<uchar> it[2]; 
    it[0] = a.begin<uchar>; 
    it[1] = b.begin<uchar>; 
} 

В настоящее время я работаю над проектом, который имеет несколько связанных изображений, где делает массив итераторы упрощает код вниз довольно много, и делает его легко следовать, что я бы предпочитают придерживаться.

Возможно ли использовать массив MatIterators? Если да, то как я могу правильно их использовать.

У меня есть пара других решений проблемы, таких как объединение изображений вместе с использованием цветовых каналов, а затем использование одного MatIterator для всего или создание отдельных MatIterators для каждого отдельного изображения и переход оттуда.

В настоящее время с помощью OpenCV 2.4 в последней версии QT в Ubuntu 12.04 (обновлен и модернизирован)

Спасибо за любую помощь.

ответ

1

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

int main() 
{  
    Mat a = Mat::zeros(4,4,CV_8UC1); 
    Mat b = Mat::zeros(4,4,CV_8UC1); 

    MatIterator_<uchar> it[2]; 
    it[0] = a.begin<uchar>(); //<--------- the brackets that I forgot 
    it[1] = b.begin<uchar>(); //<--------- same here 
} 

Извините за такую ​​земную ошибку.

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