我正在尝试使用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()查看它。
该文件不是很清楚,所以任何帮助将不胜感激。
代码看起来没问题,文档也清楚地显示了[this usage](http://docs.opencv.org/modules/core/doc/basic_structures.html#mat) – Mohammad