Copyright: https: //blog.csdn.net/CAIYUNFREEDOM https://blog.csdn.net/CAIYUNFREEDOM/article/details/90292134
#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
using namespace cv;
using namespace std;
//点击鼠标返回相应坐标位置并存到txtpoints2文件中
#define WINDOW "sou4rce image"
Mat src;
void On_mouse(int event, int x, int y, int flags, void*);
Point recent_Point;
ofstream file("point2.txt", ios::out | ios::binary);
int main()
{
int sz[3] = {5,6,10};
int i,j,k,m=0,n=0;
int h = sz[0]*sz[2]+1;
int w = sz[1]*sz[2]+1;
Mat L(h,w, CV_8UC3, Scalar(255, 255,255));
for(i=0;i<=sz[0];i++)
line(L,Point(0, i*sz[2]),Point(sz[1]*sz[2], i*sz[2]),Scalar(0, 0,255));
for(i=0;i<=sz[1];i++)
line(L,Point( i*sz[2],0),Point( i*sz[2],sz[2]*sz[0] ),Scalar(255, 0,0));
Scalar s;
L.copyTo(src);
cout<<L.size()<<endl;
//src = imread("/home/q/eclipse-workspace/myfcv/Debug/000000.jpg");
namedWindow(WINDOW, WINDOW_NORMAL);
// setMouseCallback(WINDOW, On_mouse);
//while (1)
imshow(WINDOW, L);//点击的开始
waitKey(0);
file.close();
return 0;
}
void On_mouse(int event, int x, int y, int flags, void*)//每次点击左键,将将当前点坐标存储到txt文件中,并在相应位置画红点
{
if (event == EVENT_LBUTTONDOWN || event == EVENT_MOUSEMOVE)
{
recent_Point = Point(x, y);
file << recent_Point.x << " " << recent_Point.y<<" ";
circle(src, recent_Point, 3, Scalar(25, 0, 0), -1);
imshow(WINDOW, src);
//printf("%d,%d\n",x,y);
}
}