2012-07-01 160 views
0

我正在嘗試使用OpenCV將cv :: Mat分區爲更小的cv :: Mat。我在網上找到了這個方法,但是我無法使它工作。我想將640 x 480的cv :: Mat分割成32 x 32的塊,並在每個塊上分別進行操作。OpenCV:分區cv :: Mat

這是我的代碼。 curr_frame包含整個圖像作爲cv :: Mat。 N_per_col和N_per_row分別包含每列和每行的mb_sz x mb_sz塊的數量。

void ClassName::partition(void) 
{  

    for(i = 0; i < N_per_col; i += mb_sz) 
    { 
     for(j = 0; j < N_per_row; j += mb_sz) 
     { 
      cv::Mat tmp_img(curr_frame, cv::Rect(i, j, mb_sz, mb_sz)); 
      // Do stuff with tmp_img here 
     } 
    } 
} 

這編譯得很好,但在運行時我得到一個圖像充滿了tmp_img中的NULL像素。 curr_frame絕對可以,因爲我可以用imshow()查看它。

該文件不是很清楚,所以任何幫助將不勝感激。

+0

代碼看起來沒問題,文檔也清楚地顯示了[this usage](http://docs.opencv.org/modules/core/doc/basic_structures.html#mat) – Mohammad

回答

1

正如我在評論中提到的,代碼是一致的。可以肯定的是,我使用opencv 2.4.1進行了測試,結果如您所料。所以我想這個問題是在這裏沒有提到的其他東西。

+0

你說得對,問題。抱歉給你帶來不便! – NOP