Я пытаюсь разделить cv :: Mat на меньший cv :: Mat's с помощью OpenCV. Я нашел этот метод онлайн, но я не могу заставить его работать. Я хочу разделить cv :: Mat, скажем, 640 x 480 на блоки, скажем, 32 x 32, и работать с каждым блоком индивидуально, когда я иду.OpenCV: Partitioning 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
}
}
}
компилируется нормально, но во время выполнения я получаю изображение, полное NULL пикселей в tmp_img. curr_frame определенно в порядке, поскольку я могу просмотреть его с помощью imshow().
Документация не очень понятна, поэтому любая помощь будет принята с благодарностью.
Код выглядит хорошо, и в документации также четко показано [это использование] (http://docs.opencv.org/modules/core/doc/basic_structures.html#mat) – Mohammad