cvSetImageROI в цикле - PullRequest
       13

cvSetImageROI в цикле

1 голос
/ 21 ноября 2011

Я только начинаю изучать OpenCV, и я хотел бы спросить о том, как я могу использовать cvSetImageROI в цикле.Проблема в том, что я хотел бы разделить изображение на 9 равных областей и проверить каждую область на наличие линий или кривых.Однако я не знаю, как использовать cvSetImageROI в цикле, чтобы он автоматически переходил к следующему региону.

cvSetImageROI(image, one);

Эта функция используется для получения регионов.Здесь «изображение» - это изображение, из которого должна поступить область, а «единица» - это область в прямоугольнике конкретной области, которая должна быть достигнута.Как я могу перейти из одной области прямоугольника в другую, если я хочу проверить все 9 областей изображения?

Большое спасибо!

1 Ответ

1 голос
/ 21 ноября 2011

Что вы можете сделать, это разделить изображение (ширина, высота) на прямоугольники с width_step = original_width / 3 и height_step = original_height / 3.

Затем с такой петлей:

for (i = 0; i < 3; i++)
   for (j = 0; j < 3; j++) 
   {
     CvRect rect;
     rect.x = i * width_step;
     rect.y = j * height_step;
     if (i < 2)
        rect.width = width_step;
     else
        rect.width = image.width - rect.x;
     if (j < 2)
        rect.height = height_step;
     else
        rect.height = image.height - rect.y; 
     cvSetImageROI(image, rect);
   }

вы идете по каждому региону. Надеюсь, это поможет, код не был проверен.

...