opencv c++鼠标拖动任意画多个圆并显示多个圆
时间: 2023-06-14 13:05:08 浏览: 90
你可以使用OpenCV的鼠标事件和绘图函数来实现这个功能。下面是一个简单的代码示例:
```
#include <opencv2/opencv.hpp>
#include <vector>
using namespace cv;
using namespace std;
vector<Point> points;
void onMouse(int event, int x, int y, int flags, void* param)
{
if (event == EVENT_LBUTTONDOWN)
{
points.push_back(Point(x, y));
}
}
int main()
{
Mat image(500, 500, CV_8UC3, Scalar(0));
namedWindow("image");
setMouseCallback("image", onMouse, NULL);
while (true)
{
Mat copy = image.clone();
for (int i = 0; i < points.size(); i++)
{
circle(copy, points[i], 10, Scalar(0, 0, 255), -1);
}
imshow("image", copy);
char key = waitKey(50);
if (key == 27) break;
}
return 0;
}
```
这个程序创建了一个大小为500x500的图像,并在窗口中显示它。当你点击鼠标左键时,程序会将点击的位置添加到一个点的列表中。然后程序会用红色绘制出所有的点。当你按下ESC键时,程序会退出。
阅读全文