opencv鼠标点击获得图像像素点坐标代码C
时间: 2023-10-06 22:12:21 浏览: 168
下面是一个使用OpenCV实现鼠标点击获得图像像素点坐标的简单示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
void onMouse(int event, int x, int y, int flags, void* param);
int main()
{
// 读取图像
Mat image = imread("test.jpg");
// 创建窗口并显示图像
namedWindow("image", WINDOW_NORMAL);
imshow("image", image);
// 设置鼠标回调函数
setMouseCallback("image", onMouse, &image);
waitKey(0);
return 0;
}
void onMouse(int event, int x, int y, int flags, void* param)
{
Mat* image = (Mat*)param;
switch (event)
{
case EVENT_LBUTTONDOWN:
// 获取像素点颜色值
Vec3b bgr = image->at<Vec3b>(y, x);
std::cout << "x=" << x << ", y=" << y << ", B=" << (int)bgr[0] << ", G=" << (int)bgr[1] << ", R=" << (int)bgr[2] << std::endl;
break;
}
}
```
在该示例代码中,使用`setMouseCallback`函数设置鼠标回调函数`onMouse`。当鼠标在图像窗口内点击左键时,会调用`onMouse`函数,获取鼠标点击的像素点坐标,并通过`at`函数获取该像素点的颜色值。最后将像素点坐标和颜色值输出到控制台。
阅读全文