|
|
|
|
#pragma once
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
|
|
|
|
// OpenCV
|
|
|
|
|
#include <opencv2\opencv.hpp>
|
|
|
|
|
using namespace cv;
|
|
|
|
|
|
|
|
|
|
// <20>鱨<EFBFBD><E9B1A8><EFBFBD><EFBFBD>ͨ<EFBFBD>ýṹ
|
|
|
|
|
#include "QBStru.h"
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2014/11/02
|
|
|
|
|
// <20><EFBFBD><DEB6><EFBFBD>2015/03/11
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ļ<EFBFBD><C4BC>ξ<EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. srcImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. GCP_XY <20><><EFBFBD>Ƶ㣨<C6B5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 3. GCP_LonLat <20><><EFBFBD>Ƶ㣨<C6B5><E3A3A8>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 4. type: <20>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD> -1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD>ʽ
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dstImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
bool GCPGeoCorrectImg( ImgStru *dstImg,
|
|
|
|
|
const ImgStru *srcImg,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_XY,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_LonLat,
|
|
|
|
|
int type = -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD>OpenCVͼ<56><CDBC><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ļ<EFBFBD><C4BC>ξ<EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. srcImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. GCP_XY <20><><EFBFBD>Ƶ㣨<C6B5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 3. GCP_LonLat <20><><EFBFBD>Ƶ㣨<C6B5><E3A3A8>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 4. type: <20>任<EFBFBD><E4BBBB><EFBFBD><EFBFBD> -1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD>ʽ
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dstImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. LBbox <20><>γ<EFBFBD>ȱ߽<C8B1>
|
|
|
|
|
// 3. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
bool GCPGeoCorrectImg( cv::Mat& dstImg, GeoBoundingBox& LBbox,
|
|
|
|
|
const cv::Mat& srcImg,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_XY,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_LonLat,
|
|
|
|
|
int type = -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>Ƶ<EFBFBD><C6B5>ļ<EFBFBD><C4BC><EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. srcImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. GCP_xy <20><><EFBFBD>Ƶ㣨<C6B5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 3. GCP_XY <20><><EFBFBD>Ƶ㣨<C6B5>ο<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dstImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
bool CPBasedImgCorrect( cv::Mat &dstImg,
|
|
|
|
|
const cv::Mat &srcImg,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_xy,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_XY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|