میشه اول ellipse رو کشید بعد map کرد روی تصویر اصلی مثلا :
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main()
{
cv::Mat img=cv::imread("F:\\test.jpg");
cv::Mat ellipse_image(img.rows,img.cols,CV_8UC1,cv::Scalar(0));
cv::Mat result(img.rows,img.cols,CV_8UC3,cv::Scalar(0,0,0));
cv::ellipse(ellipse_image,cv::Point(200,100),cv::Size(150,50),30,0,270,cv::Scalar(255),10);
for(int i=0;i<img.rows;i++)
{
uchar* data=ellipse_image.ptr<uchar>(i);
for(int j=0;j<img.cols;j++)
{
if(data[j]==255)
{
result.at<cv::Vec3b>(i,j)=img.at<cv::Vec3b>(i,j);
}
}
}
cv::imshow("ellipse",ellipse_image);
cv::imshow("image",img);
cv::imshow("result",result);
cv::waitKey();
}
خروجی :