本文将会介绍在一副图像的指定区域画圆,上一节介绍的是在图像指定区域画矩形,在图像上画圆和画矩形原理相近,只是用到的函数不同,画圆用到的opencv的函数为circle函数:
circle(Mat img, Point center, int radius, Scalar color, int thickness=1, int lineType=8, int shift=0)
函数的各个参数功能:
-
img为源图像
-
center为画圆的圆心坐标
-
radius为圆的半径
-
color为设定圆的颜色,规则根据B(蓝)G(绿)R(红)(详解可参见上节矩形绘画)
-
thickness 如果是正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充
-
line_type 线条的类型。默认是8(详解可参见上节矩形绘画)
-
shift 圆心坐标点和半径值的小数点位数
实现代码
include <opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("cat.jpg");
int point_x = src.cols / 2+30;//圆心坐标x值
int point_y = src.rows / 2-40;//圆心坐标y值
//圆形绘画
circle(src, Point(point_x, point_y), 60, Scalar(0, 0, 255),3);
imshow("src", src);
waitKey(0);
return 0;
}
实现结果:
上述绘制的圆形为红色,如果想改变图像颜色可以修改Scalar(0, 0, 255)中的三个值。
如有对图像处理、计算机视觉感兴趣的小伙伴关注公众号,一起学习进步。可以微信搜索“图像处理CV讲武堂”关注,也可如下二维扫码关注。
“动动手指扫码或微信搜一搜“图像处理CV讲武堂”关注哟”