|
|
|
|
#ifndef QB_IMGPROCESS_H
|
|
|
|
|
#define QB_IMGPROCESS_H
|
|
|
|
|
|
|
|
|
|
#ifdef IMGPROCESS_EXPORTS
|
|
|
|
|
#define IMGPROCESS_API __declspec(dllexport)
|
|
|
|
|
#else
|
|
|
|
|
#define IMGPROCESS_API __declspec(dllimport)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// OpenCV
|
|
|
|
|
#include <opencv2\opencv.hpp>
|
|
|
|
|
using namespace cv;
|
|
|
|
|
|
|
|
|
|
// <20>鱨<EFBFBD><E9B1A8><EFBFBD><EFBFBD>ͨ<EFBFBD>ýṹ
|
|
|
|
|
#include "QBStru.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 1. ͼ<><CDBC>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//1.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>飩
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. A_MAX <20><><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>Ч<EFBFBD><D0A7>, A_MAX < 0 ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>(<28>ر<EFBFBD><D8B1><EFBFBD>ʱ)<29><> <20><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,255<35><35>
|
|
|
|
|
// 3. degree <20><><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>Ч<EFBFBD><D0A7>, <20><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,1<><31>
|
|
|
|
|
// 4. bSrcFirst Ĭ<><C4AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>srcImg, srcImg-->dstImg
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>dstImg<6D><67>dstImg<6D><67><EFBFBD><EFBFBD>>dstImg
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. qbData <20><>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
//˵<><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Ա<EFBFBD>ʶλ<CAB6><CEBB><EFBFBD><EFBFBD>Чʱֱ<CAB1>ӷ<EFBFBD><D3B7>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κδ<CEBA><CEB4><EFBFBD>;
|
|
|
|
|
IMGPROCESS_API bool DoDehazeCtrl(QBStru *qbData,
|
|
|
|
|
int A_MAX = -1,
|
|
|
|
|
double degree = 0.78,
|
|
|
|
|
bool bSrcFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//1.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. src <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. A_MAX <20><><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>Ч<EFBFBD><D0A7>, A_MAX < 0 ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>(<28>ر<EFBFBD><D8B1><EFBFBD>ʱ)<29><> <20><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,255<35><35>
|
|
|
|
|
// 3. degree <20><><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5>Ч<EFBFBD><D0A7>, <20><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,1<><31>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dst <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoDehazeCtrl(ImgStru* src,
|
|
|
|
|
ImgStru* dst,
|
|
|
|
|
int A_MAX = -1,
|
|
|
|
|
double degree = 0.78);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2. ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//2.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. degree <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,20<32><30><EFBFBD><EFBFBD>ֵԽСԽ<D0A1><D4BD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>Խ<EFBFBD><D4BD>
|
|
|
|
|
// 3. bSrcFirst Ĭ<><C4AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>srcImg, srcImg-->dstImg
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>dstImg<6D><67> dstImg<6D><67><EFBFBD><EFBFBD>>dstImg
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. qbData <20><><EFBFBD><EFBFBD><EFBFBD>ȱ仯<C8B1><E4BBAF>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
//˵<><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Ա<EFBFBD>ʶλ<CAB6><CEBB><EFBFBD><EFBFBD>Чʱֱ<CAB1>ӷ<EFBFBD><D3B7>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κδ<CEBA><CEB4><EFBFBD>;
|
|
|
|
|
IMGPROCESS_API bool DoIntensityCtrl(QBStru *qbData,
|
|
|
|
|
int degree = 10,
|
|
|
|
|
bool bSrcFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//2.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. src <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. degree <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,20<32><30><EFBFBD><EFBFBD>ֵԽСԽ<D0A1><D4BD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>Խ<EFBFBD><D4BD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dst <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoIntensityCtrl(ImgStru* src,
|
|
|
|
|
ImgStru* dst,
|
|
|
|
|
int degree = 10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3. ͼ<><CDBC><EFBFBD>Աȶȿ<C8B6><C8BF><EFBFBD> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//3.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Աȶȿ<C8B6><C8BF><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. degree <20><><EFBFBD>ƶԱȶ<D4B1>
|
|
|
|
|
// 3. bSrcFirst Ĭ<><C4AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>srcImg, srcImg-->dstImg
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>dstImg<6D><67>dstImg<6D><67><EFBFBD><EFBFBD>>dstImg
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. qbData <20><><EFBFBD>Աȶȱ仯<C8B1><E4BBAF>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
//˵<><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Ա<EFBFBD>ʶλ<CAB6><CEBB><EFBFBD><EFBFBD>Чʱֱ<CAB1>ӷ<EFBFBD><D3B7>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κδ<CEBA><CEB4><EFBFBD>;
|
|
|
|
|
IMGPROCESS_API bool DoContrastCtrl(QBStru *qbData,
|
|
|
|
|
int degree = 10,
|
|
|
|
|
bool bSrcFirst = true);
|
|
|
|
|
|
|
|
|
|
//3.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Աȶȿ<C8B6><C8BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. src <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. degree <20>Աȶ<D4B1><C8B6><EFBFBD><EFBFBD><EFBFBD>,<2C><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,20<32><30><EFBFBD><EFBFBD>ֵԽ<D6B5><D4BD><EFBFBD>Աȶ<D4B1>Խǿ
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dst <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoContrastCtrl(ImgStru* src,
|
|
|
|
|
ImgStru* dst,
|
|
|
|
|
int degree = 10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 4. ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//4.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. degree <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 3. bSrcFirst Ĭ<><C4AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>srcImg, srcImg-->dstImg
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>dstImg<6D><67>dstImg<6D><67><EFBFBD><EFBFBD>>dstImg
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. qbData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ仯<C8B1><E4BBAF>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
//˵<><CBB5>: <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Ա<EFBFBD>ʶλ<CAB6><CEBB><EFBFBD><EFBFBD>Чʱֱ<CAB1>ӷ<EFBFBD><D3B7>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κδ<CEBA><CEB4><EFBFBD>;
|
|
|
|
|
IMGPROCESS_API bool DoDefinitionCtrl(QBStru *qbData,
|
|
|
|
|
int degree = 10,
|
|
|
|
|
bool bSrcFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//4.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. src <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. degree <20><><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD>,<2C><>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>0,20<32><30><EFBFBD><EFBFBD>ֵԽ<D6B5><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. dst <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoDefinitionCtrl(ImgStru* src,
|
|
|
|
|
ImgStru* dst,
|
|
|
|
|
int degree = 10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 5. <20><>֡ͼ<D6A1><CDBC>Ŀ<EFBFBD>궨λ <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//5.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ㾭γ<E3BEAD><CEB3><EFBFBD><EFBFBD><EFBFBD>ꡢ<EFBFBD>غɵ<D8BA>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD>Ǻͷ<C7BA>λ<EFBFBD><CEBB>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. frame <20><><EFBFBD>븴<EFBFBD><EBB8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. Lon ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ㾭<C4B5><E3BEAD>
|
|
|
|
|
// 2. Lat<61><74> ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>γ<EFBFBD><CEB3>
|
|
|
|
|
// 3. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoCalImgCenterCoordinate(double &Lon,
|
|
|
|
|
double &Lat,
|
|
|
|
|
double &H,
|
|
|
|
|
const struQB_FJ *frame);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//5.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㾭γ<E3BEAD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. frame <20><><EFBFBD>븴<EFBFBD><EBB8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. pt_x<5F><78> <20><>
|
|
|
|
|
// 3. pt_y<5F><79> <20><>
|
|
|
|
|
//
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. Lon <20><><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. Lat<61><74> γ<><CEB3>
|
|
|
|
|
// 3. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoCalAnyPtCoordinate(double &Lon,
|
|
|
|
|
double &Lat,
|
|
|
|
|
double &H,
|
|
|
|
|
const struQB_FJ *frame,
|
|
|
|
|
int pt_x,
|
|
|
|
|
int pt_y);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 6. <20><><EFBFBD><EFBFBD>У<EFBFBD><D0A3> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//6.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͼ<EFBFBD><CDBC>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. bSrcFirst Ĭ<><C4AC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>srcImg<6D><67><EFBFBD>м<EFBFBD><D0BC><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dstImg<6D><67><EFBFBD>м<EFBFBD><D0BC><EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. qbData <20><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoSysGeoCorrect(QBStru *qbData,
|
|
|
|
|
bool bSrcFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//6.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͼ<EFBFBD><CDBC>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. srcImg <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. qbData <20><><EFBFBD>븴<EFBFBD><EBB8B4><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
|
|
|
|
|
IMGPROCESS_API bool DoSysGeoCorrect(ImgStru *dstImg,
|
|
|
|
|
const ImgStru *srcImg,
|
|
|
|
|
const struQB_FJ *qbData);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//6.3 <20><><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
|
|
|
|
|
IMGPROCESS_API bool DoGCPGeoCorrectImg(ImgStru *dstImg,
|
|
|
|
|
const ImgStru *srcImg,
|
|
|
|
|
const std::vector<Point2d>& GCP_XY,
|
|
|
|
|
const std::vector<Point2d>& GCP_LonLat,
|
|
|
|
|
int type = -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//6.4 <20><><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
|
|
|
|
|
IMGPROCESS_API bool DoGCPGeoCorrectImg( 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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//6.5 <20><><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
|
|
|
|
|
IMGPROCESS_API bool DoCPBasedImgCorrect( cv::Mat &dstImg,
|
|
|
|
|
const cv::Mat &srcImg,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_xy,
|
|
|
|
|
const std::vector<cv::Point2d>& GCP_XY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 7. GeoTIFF<46>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//7.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>GeoTiff<66><66>ʽ<EFBFBD><CABD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. savePath Tiff<66>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
//˵<><CBB5><EFBFBD><EFBFBD> <20><><EFBFBD>ܻ<EFBFBD><DCBB><EFBFBD>ִ<EFBFBD>м<EFBFBD><D0BC><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD><D9B1>棻
|
|
|
|
|
IMGPROCESS_API bool SaveToGeoTIFF(QBStru *qbData,
|
|
|
|
|
string savePath = "");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//7.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>GeoTiff<66><66>ʽ<EFBFBD><CABD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. Img ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. savePath Tiff<66>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool SaveToGeoTIFF(const ImgStru *Img,
|
|
|
|
|
string savePath = "");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//7.3 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>GeoTiff<66><66>ʽ<EFBFBD><CABD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. Img OpenCVͼ<56><CDBC>
|
|
|
|
|
// 2. LBbox <20><>γ<EFBFBD>ȱ߽<C8B1>
|
|
|
|
|
// 3. savePath Tiff<66>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool SaveToGeoTIFF(cv::Mat& Img,
|
|
|
|
|
GeoBoundingBox& LBbox,
|
|
|
|
|
string savePath = "");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 8. <20><><EFBFBD>롢<EFBFBD><EBA1A2>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//8.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><F1A3A8BC><EFBFBD>У<EFBFBD><D0A3>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD>ͷ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. frameData ͨ<>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. pt1 <20><><EFBFBD>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 3. pt2 <20>յ㣨<D5B5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. distance <20><><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. azAngle <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㵽<EFBFBD>յ<EFBFBD>
|
|
|
|
|
// 3. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool CalculateTwoPtsDistanceAzimuth( double &distance,
|
|
|
|
|
double &azAngle,
|
|
|
|
|
const struQB_FJ *frameData,
|
|
|
|
|
cv::Point pt1,
|
|
|
|
|
cv::Point pt2);
|
|
|
|
|
|
|
|
|
|
//8.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD>ͷ<EFBFBD>λ
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. pt1 <20><><EFBFBD>㣨<EFBFBD><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 3. pt2 <20>յ㣨<D5B5><E3A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 4. flags<67><73>flags = 0<><30><EFBFBD><EFBFBD>ʶpt1<74><31>pt2Ϊ<32><CEAA><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ǰͼ<C7B0><CDBC><EFBFBD>еĵ<D0B5>
|
|
|
|
|
// flags = 1<><31><EFBFBD><EFBFBD>ʶpt1<74><31>pt2Ϊ<32><CEAA><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>еĵ<D0B5>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. distance <20><><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. azAngle <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㵽<EFBFBD>յ<EFBFBD>
|
|
|
|
|
// 3. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool CalculateTwoPtsDistanceAzimuth( double &distance,
|
|
|
|
|
double &azAngle,
|
|
|
|
|
const QBStru *qbData,
|
|
|
|
|
cv::Point pt1,
|
|
|
|
|
cv::Point pt2,
|
|
|
|
|
int flags = 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 9. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//9.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><F1A3A8BC><EFBFBD>У<EFBFBD><D0A3>ǰ<EFBFBD><C7B0><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵĶ<C9B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. frameData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. points ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
// 3. count<6E><74> <20><><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. area <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool CalculatePloygonArea(double &area,
|
|
|
|
|
const struQB_FJ *frameData,
|
|
|
|
|
cv::Point *points,
|
|
|
|
|
int count);
|
|
|
|
|
|
|
|
|
|
//9.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺 1. qbData ͨ<><CDA8><EFBFBD>鱨<EFBFBD><E9B1A8><EFBFBD>ݽṹ<DDBD><E1B9B9>
|
|
|
|
|
// 2. point <20><><EFBFBD><EFBFBD>ָ<EFBFBD>루<EFBFBD><EBA3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣩
|
|
|
|
|
// 3. count <20><><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
// 4. flags<67><73>flags = 0<><30><EFBFBD><EFBFBD>ʶΪ<CAB6><CEAA><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ǰͼ<C7B0><CDBC><EFBFBD>еĵ<D0B5>
|
|
|
|
|
// flags = 1<><31><EFBFBD><EFBFBD>ʶΪ<CAB6><CEAA><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>еĵ<D0B5>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1. area <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>ף<EFBFBD>
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
//˵<><CBB5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ӦΪ˳<CEAA><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2A3ACB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool CalculatePloygonArea(double &area,
|
|
|
|
|
const QBStru *qbData,
|
|
|
|
|
cv::Point* point,
|
|
|
|
|
int count,
|
|
|
|
|
int flags = 0);
|
|
|
|
|
|
|
|
|
|
//10 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ھ<EFBFBD>γ<EFBFBD>ȶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺
|
|
|
|
|
// 1. fLonDeg: <20><><EFBFBD>ȣ<EFBFBD><C8A3>ȣ<EFBFBD>
|
|
|
|
|
// 2. fLatDeg: γ<>ȣ<EFBFBD><C8A3>ȣ<EFBFBD>
|
|
|
|
|
// 3. sDir: <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>洢·<E6B4A2><C2B7><EFBFBD><EFBFBD> Ĭ<><C4AC><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>"D:\\ElevationData"
|
|
|
|
|
//
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 1. fElevator:<3A>̣߳<DFB3><CCA3>ף<EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>гɹ<D0B3><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool GetElevation( float& fElevator, double dLonDeg, double dLatDeg, string sDir, bool bNearst = false);
|
|
|
|
|
IMGPROCESS_API void ClearDem();
|
|
|
|
|
|
|
|
|
|
// 11 ͼ<><CDBC><EFBFBD>ں<EFBFBD><DABA>㷨
|
|
|
|
|
|
|
|
|
|
// 11.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> DoFastFuseImgRGBplusIR() <20><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// img1<67><31> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>1<EFBFBD><31>RGB<47><42><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|
|
|
|
// img2<67><32> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>2<EFBFBD><32>IR<49><52><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// dst: <20>ں<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoFastFuseImgRGBplusIR(cv::Mat &dst, const cv::Mat RGBimg, const cv::Mat IRimg);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 11.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> DoFuseImgRGBplusIR() <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>任<EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// img1<67><31> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>1<EFBFBD><31>RGB<47><42><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|
|
|
|
// img2<67><32> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>2<EFBFBD><32>IR<49><52><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
|
|
|
|
// wname: С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// ֧<><D6A7>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|
|
|
|
// 1. haar
|
|
|
|
|
// 2. symN [1, 10]
|
|
|
|
|
// 3. dbN [1, 10]
|
|
|
|
|
// 4. coifN [1, 5]
|
|
|
|
|
// level<65><6C>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// dst: <20>ں<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoFuseImgRGBplusIR(cv::Mat &dst, const cv::Mat RGBimg, const cv::Mat IRimg, const string wname = "sym5", const unsigned int level = 10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 11.3 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD> FuseImg() <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>任<EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// img1<67><31> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>1
|
|
|
|
|
// img2<67><32> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>2
|
|
|
|
|
// wname: С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// ֧<><D6A7>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|
|
|
|
// 1. haar
|
|
|
|
|
// 2. symN [1, 10]
|
|
|
|
|
// 3. dbN [1, 10]
|
|
|
|
|
// 4. coifN [1, 10]
|
|
|
|
|
// level<65><6C>С<EFBFBD><D0A1><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// dst: <20>ں<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
IMGPROCESS_API bool DoFuseImg(cv::Mat &dst, const cv::Mat img1, const cv::Mat img2, const string wname = "sym5", const unsigned int level = 10);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 12 <20><><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD>
|
|
|
|
|
// <20><><EFBFBD>ܣ<EFBFBD><DCA3>Ҷ<EFBFBD>ͼ<EFBFBD><EFBFBD><F1A3A8BA><EFBFBD>ͼ<EFBFBD><EFBFBD><F1A3A9B3>ֱ<EFBFBD><D6B1>ʹ<EFBFBD><CAB9><EFBFBD>
|
|
|
|
|
// <20><><EFBFBD>룺
|
|
|
|
|
// imgDeque<75><65> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>Ҫ<EFBFBD><D2AA>ͼ<EFBFBD><CDBC><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪCV_8UC1
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// dst: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Ŀ
|
|
|
|
|
IMGPROCESS_API int GetSuperResolutionImg(cv::Mat &dst, const std::deque<cv::Mat> &imgDeque, double multiple = 2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|