opencv drawing board

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);
    }
}

Guess you like

Origin blog.csdn.net/CAIYUNFREEDOM/article/details/90292134