目录
参考:
- https://blog.youkuaiyun.com/qq_41962968/article/details/122850836
- https://juejin.cn/post/6844904009162047496
- https://blog.youkuaiyun.com/BIT_HXZ/article/details/125854465
- OpenCV(C++)创建图片绘制图形(矩形、圆、文字、线段等等)
在图像上绘框
const char *srcPath3 = "../images/1.jpg";
const char *picPath3 = "../images/1-result.jpg";
cv::Mat image3 = cv::imread(srcPath3);
// cv::Mat image3 = cv::Mat::zeros(cv::Size(20, 20), CV_8UC3);
cv::Scalar color, color1;
color[0] = 0;
color[1] = 0;
color[2] = 255; // 红色
color1[0] = 0;
color1[1] = 255;
color1[2] = 0; // 绿色
cv::Rect box(50, 50, 100, 100);
// 使用cv::Rect::clip保证框完全在图像内
// box = box.clip(cv::Rect(0,0,image3.cols, image3.rows));
cv::rectangle(image3, box, cv::Scalar(0, 255, 0), 3);
// cv::rectangle(image3,cv::Point(9,9),cv::Point(9,9),color1,1,1,0);//两个顶点相同,画一个点
// cv::rectangle(image3,cv::Point(10,10),cv::Point(15,15),color,1,1,0);//矩形的两个顶点,两个顶点都包括在矩形内部
// cv::line(image3,Point(5,5),Point(10,10),Scalar(0,0,255),1,8,0);
// cv::rectangle(image3,cv::Point(10,10),cv::Point(19,19),Scalar(0,0,255),1,1,0);//矩形的两个顶点,两个顶点都包括在矩形内部
// cv::rectangle(image3, cv::Point(5, 5), cv::Point(10, 10), cv::Scalar(0, 0, 255), 2);
// 保存图片
cv::imwrite(picPath3, image3);
image3.release();
在图像上绘圆
// 在图片上绘制一个圆
cv::circle(img, cv::Point(400, 350