Обработка исключений для cv :: Rect

У меня есть ограничивающий прямоугольник, и я хочу обрезать изображение с помощью этого ограничивающего прямоугольника.

Однако я хочу увеличить размер ограничительной рамки, поэтому я делаю

if ((roi_.x - 5) > 0) // i test here in case the component at the left near border we do not minus otherwise it will be error
{
roi_.x += (-5);
}
if ((roi_.y - 5) > 0) // i test here in case the component at the left near border we do not minus otherwise it will be error
{
roi_.y += (-5);
}
if (&(roi_ + cv::Size(10, 0)) != NULL)
{
roi_.width += 10;
}
if (&(roi_ + cv::Size(0, 10)) != NULL)
{
roi_.height += 10;
}

Для компонента, находящегося максимально справа от границы, если я увеличу ширину, это будет ошибкой. То же самое для высоты в случае, если компонент находится внизу возле границы

Есть ли способы справиться с этим исключением?

0

Решение

Вы получаете ошибку, потому что & требует л-значение, которые не для обоих roi_ + cv::Size(10, 0) а также roi_ + cv::Size(0, 10),

Вам нужно изменить

if (&(roi_ + cv::Size(10, 0)) != NULL)
...
if (&(roi_ + cv::Size(0, 10)) != NULL)

в

if ((roi_.x + roi_.width + 10) < img.cols)
...
if ((roi_.y + roi_.height + 10) < img.rows)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]