Skip to content

OpenCV:Example:DrawRois

ROI영역을 그려주는 OpenCV 샘플.

bool AmImagePreprocess::drawRois(cv::Mat & output)
{
    for (auto & roi : _rois) {
        auto & buffer = roi.second.atRectBuffer();
        std::size_t const buffer_size = buffer.size();

        for (std::size_t index = 0; index < buffer_size; ++index) {
            cv::ellipse(output, cv::Point((buffer[index].p2.x + buffer[index].p1.x) / 2
                                        , (buffer[index].p2.y + buffer[index].p1.y) / 2), cv::Size(2, 2), 0, 0, 360, cv::Scalar(175, 175, 0), CV_FILLED);
            if (index + 1 == buffer_size) {
                cv::rectangle(output, cv::Point(buffer[index].p1.x, buffer[index].p1.y), cv::Point(buffer[index].p2.x, buffer[index].p2.y), cv::Scalar(0, 175, 175));
            }
        }
    }
    return true;
}

See also