以下是一个简单的示例代码,可以在输出的图片上取点,并用变量保存该点的xy值:
```c++
#include
#include
using namespace cv;
using namespace std;
int main()
{
// 读取图片
Mat img = imread("test.jpg");
// 创建窗口并显示图片
namedWindow("Image");
imshow("Image", img);
// 等待用户点击鼠标
Point2f pt;
setMouseCallback("Image", [](int event, int x, int y, int flags, void* userdata) {
if (event == EVENT_LBUTTONDOWN)
{
// 鼠标左键按下,保存坐标
Point2f* pt = (Point2f*)userdata;
pt->x = x;
pt->y = y;
}
}, &pt);
waitKey(0);
// 输出坐标
cout << "x: " << pt.x << ", y: " << pt.y << endl;
return 0;
}
```
这段代码使用了 OpenCV 的 `setMouseCallback` 函数来监听鼠标事件。当用户在窗口上点击鼠标时,会触发回调函数,将鼠标点击的坐标保存到指定的变量中。最后输出保存的坐标即可。