Я хочу разделить простой Mat
(200x200) в разных регионах (10x10). Я делаю 2 цикла, затем создаю Rect
, где я указываю переменные, которые я хочу на каждой итерации (x, y, width, height)
. Наконец, я сохраняю эту область изображения внутри vector
Mat
s.Как разделить мат OpenCV в прямоугольных областях?
Но что-то случилось с моим кодом:
Mat face = Mat(200, 200, CV_8UC1);
vector<Mat> regions;
Mat region_frame;
int width = face.cols * 0.05;
int heigth = face.rows * 0.05;
for(int y=0; y<=(face.rows - heigth); y+=heigth)
{
for(int x=0; x<=(face.cols - width); x+=width)
{
Rect region = Rect(x, y, x+width, y+heigth);
region_frame = face(region);
regions.push_back(region_frame);
}
}
Проблема заключается только в конечной стадии, он не работает с размером новой region_frame
я пытаюсь создать. Он увеличивается с каждым количеством итераций cols.
Как я могу это решить?
Вам просто нужно исправить: 'Rect область = Rect (х, у, ширина, heigth); ' – Miki
Uffff !!! ужасная ошибка! Я подумал, что это будет очевидно ... Большое спасибо за помощь! –
Рад, что это помогло. Я только что опубликовал подробный ответ. – Miki