|
|
|
|
// QB_ImageProcessFunc.cpp : <20><><EFBFBD><EFBFBD> DLL <20>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD>
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
|
|
|
|
#define IMGPROCESS_EXPORTS
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
#include "QB_ImgProcessFun.h"
|
|
|
|
|
#include "SysGeoCorrect.h"
|
|
|
|
|
#include "GeoTIFFEdit.h"
|
|
|
|
|
#include "IntensityControl.h"
|
|
|
|
|
#include "ContrastControl.h"
|
|
|
|
|
#include "DefinitionControl.h"
|
|
|
|
|
#include "GeoInfoCalculate.h"
|
|
|
|
|
#include "GCPGeoCorrect.h"
|
|
|
|
|
#include "DecreaseHazeControl.h"
|
|
|
|
|
#include "GetElevation.h"
|
|
|
|
|
#include "fuseImg.h"
|
|
|
|
|
#include "superResolutionImg.h"
|
|
|
|
|
|
|
|
|
|
// <09><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//1.1. ͼ<><CDBC>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoDehazeCtrl(QBStru *qbData, int A_MAX, double degree, bool bSrcFirst)
|
|
|
|
|
{
|
|
|
|
|
return QBStruDeHazeControl(qbData, A_MAX, degree, bSrcFirst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//1.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoDehazeCtrl(ImgStru* src, ImgStru* dst, int A_MAX, double degree)
|
|
|
|
|
{
|
|
|
|
|
return ImgStruDeHazeControl(src, dst, A_MAX, degree);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//2.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoIntensityCtrl(QBStru *qbData, int degree, bool bSrcFirst)
|
|
|
|
|
{
|
|
|
|
|
return QBStruIntensityControl(qbData, degree, bSrcFirst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//2.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoIntensityCtrl(ImgStru* src, ImgStru* dst, int degree)
|
|
|
|
|
{
|
|
|
|
|
return ImgStruIntensityControl(src, dst, degree);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//3.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Աȶȿ<C8B6><C8BF><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoContrastCtrl(QBStru *qbData, int degree, bool bSrcFirst)
|
|
|
|
|
{
|
|
|
|
|
return QBStruContrastControl(qbData, degree, bSrcFirst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//3.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Աȶȿ<C8B6><C8BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoContrastCtrl(ImgStru* src, ImgStru* dst, int degree)
|
|
|
|
|
{
|
|
|
|
|
return ImgStruContrastControl(src, dst, degree);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//4.1 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoDefinitionCtrl(QBStru *qbData, int degree, bool bSrcFirst)
|
|
|
|
|
{
|
|
|
|
|
return QBStruDefinitionControl(qbData, degree, bSrcFirst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//4.2 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD><C8BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool DoDefinitionCtrl(ImgStru* src, ImgStru* dst, int degree)
|
|
|
|
|
{
|
|
|
|
|
return ImgStruDefinitionControl(src, dst, degree);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//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>
|
|
|
|
|
IMGPROCESS_API bool DoCalImgCenterCoordinate(double &Lon, double &Lat, double &H, const struQB_FJ *frame)
|
|
|
|
|
{
|
|
|
|
|
return CalImgCenterCoordinate(Lon, Lat, H, 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>
|
|
|
|
|
IMGPROCESS_API bool DoCalAnyPtCoordinate(double &Lon, double &Lat, double &H, const struQB_FJ *frame, int pt_x, int pt_y)
|
|
|
|
|
{
|
|
|
|
|
return CalAnyPtCoordinate(Lon, Lat, H, frame, pt_x, pt_y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//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>
|
|
|
|
|
IMGPROCESS_API bool DoSysGeoCorrect(QBStru *qbData, bool bSrcFirst)
|
|
|
|
|
{
|
|
|
|
|
return SysGeoCorrectImg(qbData, bSrcFirst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//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>
|
|
|
|
|
IMGPROCESS_API bool DoSysGeoCorrect(ImgStru *dstImg, const ImgStru *srcImg, const struQB_FJ *frameData)
|
|
|
|
|
{
|
|
|
|
|
return SysGeoCorrectImg(dstImg, srcImg, frameData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//6.3 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ļ<EFBFBD><C4BC>ξ<EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
IMGPROCESS_API bool DoGCPGeoCorrectImg(ImgStru *dstImg, const ImgStru *srcImg, const std::vector<Point2d>& GCP_XY, const std::vector<Point2d>& GCP_LonLat, int type)
|
|
|
|
|
{
|
|
|
|
|
return GCPGeoCorrectImg(dstImg, srcImg, GCP_XY, GCP_LonLat, type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//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>
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
return GCPGeoCorrectImg(dstImg, LBbox, srcImg, GCP_XY, GCP_LonLat, type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//6.5 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF>Ƶ<EFBFBD><C6B5>ļ<EFBFBD><C4BC><EFBFBD>У<EFBFBD><D0A3>
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
return CPBasedImgCorrect(dstImg, srcImg, GCP_xy, GCP_XY);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//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>
|
|
|
|
|
IMGPROCESS_API bool SaveToGeoTIFF(QBStru *qbData, string savePath)
|
|
|
|
|
{
|
|
|
|
|
return SaveQBDataToGeoTIFF(qbData, 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>
|
|
|
|
|
IMGPROCESS_API bool SaveToGeoTIFF(const ImgStru *Img, string savePath)
|
|
|
|
|
{
|
|
|
|
|
return SaveImgStruToGeoTIFF(Img, 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>
|
|
|
|
|
IMGPROCESS_API bool SaveToGeoTIFF(cv::Mat& Img, GeoBoundingBox& LBbox, string savePath)
|
|
|
|
|
{
|
|
|
|
|
return SaveImgStruToGeoTIFF(Img, LBbox, savePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//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>
|
|
|
|
|
IMGPROCESS_API bool CalculateTwoPtsDistanceAzimuth(double &distance, double &azAngle, const struQB_FJ *frameData, cv::Point pt1, cv::Point pt2)
|
|
|
|
|
{
|
|
|
|
|
return CalTwoPointsDistanceAzimuth(distance, azAngle, frameData, pt1, 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>λ
|
|
|
|
|
IMGPROCESS_API bool CalculateTwoPtsDistanceAzimuth(double &distance, double &azAngle, const QBStru *qbData, cv::Point pt1, cv::Point pt2, int flags)
|
|
|
|
|
{
|
|
|
|
|
return QBStruCalTwoPtsDistanceAzimuth(distance, azAngle, qbData, pt1, pt2, flags);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//9.1 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵĶ<C9B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool CalculatePloygonArea(double& area, const struQB_FJ *frameData, cv::Point* points, int count)
|
|
|
|
|
{
|
|
|
|
|
return CalPolygonArea(area, frameData, points, count);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//9.2 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IMGPROCESS_API bool CalculatePloygonArea(double &area, const QBStru *qbData, cv::Point* point, int count, int flags)
|
|
|
|
|
{
|
|
|
|
|
return QBStruCalPolygonArea(area, qbData, point, count, flags);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//10 <20><>ȡ<EFBFBD>߳<EFBFBD>
|
|
|
|
|
//<2F><><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
|
|
|
|
|
bool GetElevation( float& fElevator, double dLonDeg, double dLatDeg, string sDir, bool bNearst)
|
|
|
|
|
{
|
|
|
|
|
return GetDem(fElevator, dLonDeg, dLatDeg, sDir, bNearst);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>DEM<45><4D><EFBFBD><EFBFBD>
|
|
|
|
|
void ClearDem()
|
|
|
|
|
{
|
|
|
|
|
ClearDemMem();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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
|
|
|
|
|
bool DoFastFuseImgRGBplusIR(cv::Mat &dst, const cv::Mat RGBimg, const cv::Mat IRimg)
|
|
|
|
|
{
|
|
|
|
|
return FastFuseImgRGBplusIR(dst, RGBimg, 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
|
|
|
|
|
bool DoFuseImgRGBplusIR(cv::Mat &dst, const cv::Mat RGBimg, const cv::Mat IRimg, const string wname, const unsigned int level)
|
|
|
|
|
{
|
|
|
|
|
return FuseImgRGBplusIR(dst, RGBimg, IRimg, wname, level);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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
|
|
|
|
|
bool DoFuseImg(cv::Mat &dst, const cv::Mat img1, const cv::Mat img2, const string wname, const unsigned int level)
|
|
|
|
|
{
|
|
|
|
|
return FuseImg(dst, img1, img2, wname, level);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <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>Ŀ
|
|
|
|
|
int GetSuperResolutionImg(cv::Mat &dst, const std::deque<cv::Mat> &imgDeque, double multiple)
|
|
|
|
|
{
|
|
|
|
|
return SuperResolutionImg(dst, imgDeque, multiple);
|
|
|
|
|
}
|