Files
2018-06-03 22:18:30 +08:00

84 lines
1.5 KiB
C++

#include<iostream>
#include<opencv.hpp>
#include"MapHandler.h"
#define MAP1_FILE ("map_pic/map1.jpg")
#define MAP2_FILE ("map_pic/map2.jpg")
using namespace cv;
using namespace std;
#define TEM_WIE (30)
#define TEM_HEI (30)
Point2i p1, p2, p3, p4;
Mat ROI;
Mat src1 = imread(MAP1_FILE);
Mat src2 = imread(MAP2_FILE);
MapHandler handler(src1, src2);
Point maxPoint;
bool map1Clicked = false, map2Clicked = false;
int cCount1 = 0;
int cCount2 = 0;
void on_mouse(int event, int x, int y, int flags, void* param)
{
int flag = int(param);
switch (event)
{
case EVENT_LBUTTONDOWN:
if (flag == 1)
{
if (cCount1 == 0)
{
p1 = Point2i(x, y);
}
else if (cCount1 == 1)
{
p2 = Point2i(x, y);
}
cCount1++;
cout << "Click on map1: (" << x << ", " << y << ")" << endl;
}
else if (flag == 2)
{
if (cCount2 == 0)
{
p3 = Point2i(x, y);
}
else if (cCount2 == 1)
{
p4 = Point2i(x, y);
}
cCount2++;
cout << "Click on map2: (" << x << ", " << y << ")" << endl;
}
if (cCount1 == 2 && cCount2 == 2)
{
cCount1 = 0;
cCount2 = 0;
cout << "Matching..." << p1 << p2 << p3 << p4 << endl;
Mat out = handler.Match2(p1, p2, p3, p4);
imshow("Out", out);
}
break;
default:
break;
}
}
int main()
{
namedWindow("Map1");
namedWindow("Map2");
imshow("Map1", src1);
imshow("Map2", src2);
setMouseCallback("Map1", on_mouse, (void *)1);
setMouseCallback("Map2", on_mouse, (void *)2);
waitKey(0);
return 0;
}