使用opencv,以一点为中心画圆,给我c++代码
时间: 2023-08-31 09:21:09 浏览: 182
### 回答1:
```
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
// 创建画布
cv::Mat image = cv::Mat::zeros(cv::Size(400, 400), CV_8UC3);
// 在画布中心画圆
cv::Point center(200, 200);
int radius = 100;
cv::Scalar color(0, 0, 255);
int thickness = -1;
cv::circle(image, center, radius, color, thickness);
// 显示图片
cv::imshow("Circle", image);
cv::waitKey(0);
return 0;
}
```
### 回答2:
使用OpenCV库可以很方便地在图像上以一点为中心画圆。下面是一个简单的示例代码:
```c
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个空白图像
cv::Mat image(cv::Size(800, 600), CV_8UC3, cv::Scalar(255, 255, 255));
// 设置圆心位置和半径
cv::Point center(400, 300);
int radius = 100;
// 在图像上画圆
cv::circle(image, center, radius, cv::Scalar(0, 0, 0), 2);
// 显示图像
cv::imshow("Circle", image);
cv::waitKey(0);
return 0;
}
```
这段代码首先创建一个800x600大小的空白图像,然后设置圆心位置为(400, 300),半径为100。接下来,使用`cv::circle`函数在图像上画圆,圆的颜色为黑色,线宽为2像素。最后,通过`cv::imshow`函数显示图像,并使用`cv::waitKey`等待按键输入结束程序。
你可以根据自己的需要调整图像的大小、圆心位置和半径,并运行代码来观察效果。
### 回答3:
使用OpenCV,在一张图像上以一点为中心画圆的C代码可以如下所示:
```c
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
// 加载图像
Mat image = imread("image.jpg");
if (image.empty())
{
std::cout << "无法加载图像." << std::endl;
return -1;
}
// 定义圆心坐标和半径
Point center(image.cols / 2, image.rows / 2);
int radius = 100;
// 在图像上画圆
circle(image, center, radius, Scalar(0, 255, 0), 2);
// 显示图像
imshow("Circle", image);
waitKey(0);
return 0;
}
```
上述代码中,我们首先使用`imread`函数加载图像。然后,我们定义了一个`Point`对象作为圆心的坐标,一般情况下我们将其设置为图像的中心位置。然后,我们定义了一个半径值,可以根据实际需求进行调整。最后,我们使用`circle`函数在图像上绘制圆形,在本例中,我们使用了绿色(Scalar(0, 255, 0))来表示圆的颜色,线宽为2个像素。
最后,我们使用`imshow`函数显示绘制了圆的图像,并通过`waitKey`函数等待按键响应关闭窗口。
阅读全文