1、纯手工用cv::ellipse椭圆函数实现,位置、长短轴大小均为人为调整
#include<opencv.hpp>
int main()
{
cv::Mat image = cv::Mat::ones(480, 640, CV_32FC3);
image.setTo(cv::Scalar(255, 255, 255));
cv::ellipse(image,cv::Point(313,178),cv::Size(70,100),0,40,140,cv::Scalar(0,0,255),2,8);
cv::ellipse(image, cv::Point(286, 220), cv::Size(50, 35), 225, 270, 452, cv::Scalar(0, 0, 255), 2, 8);
cv::ellipse(image, cv::Point(340, 220), cv::Size(50, 35), -45, 268, 450, cv::Scalar(0, 0, 255), 2, 8);
cv::putText(image, "Ben", cv::Point(400, 320), 7, 1, cv::Scalar(0, 0, 20), 1, 8, false);
cv::imwrite("result.jpg", image);
cv::namedWindow("My window");
cv::imshow("My window", image);
cv::waitKey(0);
cv::destroyWindow("My window");
return 0;
}
效果如下图:
2、人为调整椭圆位置、角度等未免有些麻烦,偷懒一下,利用心形曲线公