参考opencv开源上的,跑通了 注释了一下,以便后续学习
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
cv::Point2f center(0,0);
cv::Point2f computeIntersect(cv::Vec4i a,cv::Vec4i b)
{
int x1 = a[0],y1 = a[1],x2 = a[2],y2 = a[3],x3 = b[0],y3 = b[1],x4 = b[2],y4 = b[3];
if (float d = ((float)(x1 - x2)*(y3 - y4)-(y1 - y2)*(x3 - x4)))
{
cv::Point2f pt;
pt.x = ((x1*y2 - y1*x2)*(x3 - x4) - (x1 - x2)*(x3*y4 - y3*x4))/d;
pt.y = ((x1*y2 - y1*x2)*(y3 - y4) - (y1 - y2)*(x3*y4 - y3*x4))/d;
return pt;
}
else
return cv::Point2f(-1,-1);
}
void sortCorners(std::vector<cv::Point2f>& corners,cv::Point2f center)
{
std::vector<cv::Point2f> top,bot;
for (unsigned int i =0;i< corners.size();i++)
{
if