机器视觉学习笔记(10)——使用鼠标获取像素点信息
标签: 机器视觉
1.目标
使用鼠标对关键点BGR进行采集,采集的数据有正数据和负数据,正数据是需要收集的数据,使用鼠标左键采集,采集后用绿色的圆圈表示;负数据是摈弃的数据,使用鼠标右键采集,采集后用红色的圆圈表示。
2.代码实现
主要通过OpenCV中的回调函数实现,采集的数据存储在data.txt中。需要注意的是,窗口横轴为X轴,竖轴为Y轴,坐标是(x, y),而矩阵坐标是按照(row, col),故窗口中的点(x, y)对应的值在矩阵中为(y, x)
void mouseHandler(int event, int x,int y ,int flags,void *p)
{
Mat img0(*(Mat*)p);
static Mat img1= img0.clone();//不改变源图像,并且能够显示已标记的点
if(event==CV_EVENT_LBUTTONDOWN)//鼠标左键按下,正数据
{
Point point(x, y);
circle(img1, point, 3, Scalar(0, 255, 0));
//记录数据,显示img1,数据却从原始图像采集,窗口的x, y轴和图像的行和列相反
ofstream file("data.txt"