c++,opencv椭圆边界和椭圆roi区域

 

 

 

cv::Mat after_mask = cv::imread("mask.jpg");
vector<vector<cv::Point>> contours;
cv::findContours(after_mask, contours, EGA_RETR_EXTERNAL, EGA_CHAIN_APPROX_NONE);
double maxArea = 0;
vector<cv::Point> maxContour;
for (size_t i = 0; i < contours.size(); i++)
{
double area = cv::contourArea(contours[i]);
if (area > maxArea)
{
maxArea = area;
maxContour = contours[i];
}
}
cv::Mat mask_f = cv::Mat::zeros(after_mask.rows, after_mask.cols, CV_8UC1) + 255;
int index = 0;
for (int s = 0; s < contours.size(); s++) {
if (contours[s].size() >= contours[index].size()) {
index = s;
}
}
cv::RotatedRect ell = cv::fitEllipse(contours[index]);
cv::ellipse(mask_f, ell, cv::Scalar(0, 255, 255), -1);
mask_f = 255 - mask_f;

 

posted @ 2021-08-02 10:55  皮卡皮卡妞  阅读(259)  评论(0)    收藏  举报