c++ opencv 画圆
时间: 2023-11-19 21:04:52 浏览: 116
下面是使用C++和OpenCV库画圆的示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 创建一个黑色的图像
Mat img = Mat::zeros(Size(512, 512), CV_8UC3);
// 在图像中心画一个红色的圆
circle(img, Point(256, 256), 50, Scalar(0, 0, 255), FILLED, LINE_8);
// 显示图像
imshow("image", img);
waitKey(0);
return 0;
}
```
在上面的代码中,我们首先创建了一个大小为512x512的黑色图像。然后,我们使用`circle`函数在图像中心画了一个半径为50的红色圆。最后,我们使用`imshow`函数显示图像,并使用`waitKey`函数等待用户按下任意键。
相关问题
c++opencv画圆
在C++中使用OpenCV库可以很方便地画圆。下面是一个简单的例子,展示了如何在白色背景上画一个红色的实心圆并保存为a12.jpg。
1. 首先需要引入OpenCV库的头文件,包括opencv2/opencv.hpp、opencv2/core.hpp、opencv2/imgcodecs.hpp和opencv2/highgui.hpp。
2. 创建一个Mat对象img,用于存储图像数据。可以使用imread函数读取一张白色背景的图片。
3. 定义圆心坐标和半径,以及圆的颜色和线宽等参数。
4. 使用circle函数在img上画圆,函数的参数包括图像对象、圆心坐标、半径、颜色、线宽和线型等。
5. 最后使用imwrite函数将img保存为a12.jpg。
下面是完整的代码:
```
#include <stdio.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv) {
Mat img = imread("white.jpg", IMREAD_UNCHANGED);
if (!img.data) {
printf("No image data \n");
return -1;
}
// 定义圆心坐标和半径,以及圆的颜色和线宽等参数
Point center = Point(200, 200);
int radius = 50;
Scalar color = Scalar(0, 0, 255);
int thickness = FILLED;
int lineType = LINE_8;
// 在img上画圆
circle(img, center, radius, color, thickness, lineType);
// 保存图像
imwrite("a12.jpg", img);
namedWindow("Display Image", WINDOW_FREERATIO);
imshow("Display Image", img);
int k = waitKey(0);
return 0;
}
```
opencv C++画圆
在OpenCV C++中,可以使用`circle`函数来画圆。`circle`函数的原型如下:
```cpp
void circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
```
参数说明:
- `img`:输入输出图像,即要在其上绘制圆的图像。
- `center`:圆心坐标,可以使用`Point`类来表示。
- `radius`:圆的半径。
- `color`:圆的颜色,可以使用`Scalar`类来表示,例如`Scalar(255, 0, 0)`表示蓝色。
- `thickness`:圆的线条粗细,默认为1。
- `lineType`:线条类型,默认为8-connected线条。
- `shift`:坐标点的小数位数,默认为0。
下面是一个简单的例子,演示如何使用OpenCV C++画一个红色的圆:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 创建一个黑色的图像
Mat image(500, 500, CV_8UC3, Scalar(0, 0, 0));
// 定义圆心坐标和半径
Point center(250, 250);
int radius = 100;
// 画圆
circle(image, center, radius, Scalar(0, 0, 255), 2);
// 显示图像
imshow("Circle", image);
waitKey(0);
return 0;
}
```
这段代码创建了一个500x500的黑色图像,然后在图像中心画了一个半径为100的红色圆。你可以根据需要修改圆心坐标、半径和颜色来绘制不同的圆。
阅读全文