2016-01-22 2 views
-2

Я изучал opencv, структуру мата.Mat pointer (Mat * arr) initiallize

Но, в исходном коде, он использовал указатель мата. (Изображение)

Но, произошла ошибка. т.к., Mat * расходыVol не initiallized. Я не знаю, как инициализировать costVol, переменную.

код:

Mat lGray, rGray; Mat tmp; Mat *costVol; 

    for (int y = 0;y < m_h;y++) { 
     int index = y * m_w; 
     for (int x = 0;x < (m_w);x++) { 
      lB = *pLCode; 

      double costCensus = 0.0; 

      for (int dd = 0; dd < m_nr_plane; dd++) { 
       double* costt = (double*)costVol[dd].ptr<double>(y); 
       costt[x] = CENCUS_BIT; 
       if (x - dd >= 0) { 
        rB = rCode[index + x - dd]; 
        costt[x] = (lB^rB).count(); 
       } 
       costCensus = 1 - exp(-255 * costt[x]/15); 
      } 
      pLCode++; 
      m_cost_vol[y][x][i] = costAd + costCensus; 
     } 
    } 
+0

Это C или C++? –

+0

@ClaudioCortese: Это C++! – Olaf

+1

C не C++ не C! Не добавляйте тег C для C++! – Olaf

ответ

0

Ну, Мэт массив класса.

Используйте его метод create().