You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1102 lines
18 KiB
C++

2 years ago
#include "StdAfx.h"
#include "ExportImgShowBase.h"
#include "ImgShowDlg.h"
#include "QB_ImgProcessFun.h"
#include "GlobalFunc.h"
// <20><><EFBFBD><EFBFBD><ECBAAF>
CExportImgShowBase::CExportImgShowBase(void)
{
m_ShowDlg = NULL;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CExportImgShowBase::~CExportImgShowBase(void)
{
try
{
ClearMemory();
// <20><><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD>
DestroyWnd();
m_ShowDlg = NULL;
}
catch(cv::Exception &e)
{
e.what();
std::abort();
}
catch(...)
{
std::abort();
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
BOOL CExportImgShowBase::CreateWnd(const HWND hParentWnd)
{
BOOL ret = FALSE;
try
{
// <20><><EFBFBD><EFBFBD><EBB8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if (hParentWnd == NULL)
{
return FALSE;
}
// <20><><EFBFBD>ڴ<EFBFBD><DAB4>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
CWnd* pParWnd = CWnd::FromHandle(hParentWnd);
// <20><>m_ShowDlgΪ<67><CEAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dialog
if (m_ShowDlg == NULL)
{
//return TRUE;
// <20>½<EFBFBD><C2BD><EFBFBD>Ƶ<EFBFBD><C6B5>ʾ<EFBFBD><CABE><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>
m_ShowDlg = new CImgShowDlg();
if (pParWnd != NULL)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ret = m_ShowDlg->Create(IDD_IMG_SHOW_DIALOG, pParWnd);
}
else
{
// <20>ͷŶ<CDB7><C5B6><EFBFBD>
SAFE_DELETE(m_ShowDlg);
m_ShowDlg = NULL;
}
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ʾ<EFBFBD><CABE><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB>
void CExportImgShowBase::MoveWnd(const CRect &clientRect)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
// <20>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB>
m_ShowDlg->MoveWindow(clientRect);
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CRect rect;
// m_ShowDlg->GetClientRect(&rect);
// POINT center;
// center.x = 60L;
// center.y = 60L;
//
// m_ShowDlg->SetNorthDirectionCenter(center);
}
}
catch (...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><D8B4>ڣ<EFBFBD><DAA3><EFBFBD>nCmdShow<6F><77><EFBFBD><EFBFBD>
// #define SW_HIDE 0
// #define SW_SHOWNORMAL 1
// #define SW_NORMAL 1
// #define SW_SHOWMINIMIZED 2
// #define SW_SHOWMAXIMIZED 3
// #define SW_MAXIMIZE 3
// #define SW_SHOWNOACTIVATE 4
// #define SW_SHOW 5
// #define SW_MINIMIZE 6
// #define SW_SHOWMINNOACTIVE 7
// #define SW_SHOWNA 8
// #define SW_RESTORE 9
// #define SW_SHOWDEFAULT 10
// #define SW_FORCEMINIMIZE 11
// #define SW_MAX 11
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʾSW_SHOW <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SW_HIDE <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>֤
void CExportImgShowBase::ShowWnd(const int nCmdShow)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
m_ShowDlg->ShowWindow(nCmdShow);
}
}
catch(...)
{
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʾһ֡ͼ<D6A1><CDBC>
BOOL CExportImgShowBase::ShowImage(const BITMAPINFO* pImgInfo,
BYTE* pImgData,
GeoBoundingBox LBbox,
BOOL isNeedFlip,
BOOL isNeedClip,
const CRect* pShowRegion,
float Strecth_Ratio,
POINT xyShift)
{
BOOL ret = FALSE;
try
{
if (m_ShowDlg == NULL && m_ShowDlg->GetSafeHwnd() == NULL)
{
return FALSE;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if ( (pImgInfo == NULL) || (pImgData == NULL))
{
return FALSE;
}
// <20><><EFBFBD><EFBFBD>һ·<D2BB><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
m_ShowDlg->SetFirstSignal(TRUE);
// biBitCount <20><>֤
if(pImgInfo->bmiHeader.biBitCount != 24 && pImgInfo->bmiHeader.biBitCount != 8)
{
m_ShowDlg->SetFirstSignal(FALSE);
return FALSE;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>LatestQBData
if (pImgInfo->bmiHeader.biWidth > 0 &&
pImgInfo->bmiHeader.biHeight > 0 &&
pImgData != NULL)
{
// <20><><EFBFBD><EFBFBD>һ·<D2BB><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
m_ShowDlg->SetFirstSignal(TRUE);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
QBStru local;
local.image.srcImg.ImgWidth = pImgInfo->bmiHeader.biWidth;
local.image.srcImg.ImgHeight = pImgInfo->bmiHeader.biHeight;
local.image.srcImg.bitcount = pImgInfo->bmiHeader.biBitCount;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
int lineByte = (pImgInfo->bmiHeader.biWidth * pImgInfo->bmiHeader.biBitCount / 8);
// λͼ<CEBB><CDBC><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>С
int imgBufSize = pImgInfo->bmiHeader.biHeight * lineByte;
if ( imgBufSize > 0)
{
local.image.srcImg.buff = new BYTE[imgBufSize];
if (local.image.srcImg.buff != NULL)
{
// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
memcpy(local.image.srcImg.buff, pImgData, static_cast<size_t>(imgBufSize)); // ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
local.image.bValid = true;
// <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA>ת
if (isNeedFlip == TRUE)
{
FlipImgStru(&local.image.srcImg);
}
}
}
local.image.srcImg.BoundingBox = LBbox;
// <20><> local <20><><EFBFBD>Ƶ<EFBFBD> m_LatestQBData
m_ShowDlg->SetLatestQBData(local);
m_ShowDlg->SetBoundingBox(LBbox);
// <20>ͷ<EFBFBD> local
if (local.image.srcImg.buff != NULL)
{
SAFE_DELETE_ARRAY(local.image.srcImg.buff);
}
// <20><>ʾͼ<CABE><CDBC>
if (m_ShowDlg != NULL)
{
// <20>ӿ<EFBFBD>ת<EFBFBD><D7AA>
CRect ShowRegion;
if (pShowRegion != NULL)
{
ShowRegion = *pShowRegion;
}
ret = m_ShowDlg->ShowOneImage(const_cast<BITMAPINFO*>(pImgInfo), pImgData, isNeedClip, ShowRegion, isNeedFlip, Strecth_Ratio, xyShift);
}
// ͼ<><CDBC>ȥ<EFBFBD><C8A5> <20><><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD> <20>Աȶȵ<C8B6><C8B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD> <20><>λ
m_ShowDlg->SetiLatest(0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
m_ShowDlg->SetiPreLatest(0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD>ǰһ<C7B0><D2BB>
// <20>ر<EFBFBD><31><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
m_ShowDlg->SetFirstSignal(FALSE);
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return ret;
}
catch(...)
{
return ret;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B1A8><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CExportImgShowBase::DisposeQBData(const QBStru* qbData)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal()) // 1·<31>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬ֱ<EBA3AC>ӷ<EFBFBD><D3B7><EFBFBD>
{
return;
}
else // <20>ر<EFBFBD><33>ź<EFBFBD> <20><><EFBFBD><EFBFBD><32>ź<EFBFBD>
{
// <20><><EFBFBD><EFBFBD><32><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
m_ShowDlg->SetSecondSignal(TRUE);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ź<EFBFBD>
m_ShowDlg->DisposeQBData(qbData);
// <20>ر<EFBFBD><32><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
m_ShowDlg->SetSecondSignal(FALSE);
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪĿ<CEAA><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CExportImgShowBase::SetTargetPixelCoordinate(const CPoint &pt)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
m_ShowDlg->SetTargetPixelCoordinate(pt);
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ4<CEAA><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CExportImgShowBase::SetQuadrangleCorners(const POINT* pts)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
m_ShowDlg->SetQuadrangleCorners(pts);
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>γ<EFBFBD><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CExportImgShowBase::SetTgtLocLeadLonLat(double lon, double lat)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
m_ShowDlg->SetTgtLocLeadLonLat(lon, lat);
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ʾ<EFBFBD><CABE><EFBFBD>ڣ<EFBFBD>ͬʱ<CDAC>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>Դ
void CExportImgShowBase::DestroyWnd()
{
try
{
// <20>ͷ<EFBFBD>MFC<46>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>Դ
if (m_ShowDlg != NULL)
{
m_ShowDlg->DestroyWindow();
}
// <20>ͷŶ<CDB7><C5B6><EFBFBD>
SAFE_DELETE(m_ShowDlg);
m_ShowDlg = NULL;
}
catch(...)
{
return;
}
}
// 8 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ漰<DAB4><E6BCB0><EFBFBD><EFBFBD>
void CExportImgShowBase::ClearMemory()
{
try
{
// <20><><EFBFBD><EFBFBD><EBBAAF>ָ<EFBFBD><D6B8>callBackFun <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if (m_ShowDlg != NULL)
{
m_ShowDlg->ClearMemory();
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CExportImgShowBase::SetCallBackFun(SendCoordinateProc proc)
{
BOOL ret = FALSE;
try
{
// <20><><EFBFBD><EFBFBD><EBBAAF>ָ<EFBFBD><D6B8>callBackFun <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if ((m_ShowDlg != NULL) && (proc != NULL))
{
ret = m_ShowDlg->SetCallBackFun(proc);
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ݵ<EFBFBD><DDB5>ⲿCSU<53><55>
BOOL CExportImgShowBase::SetCallBackFun(SendPixInfoProc proc)
{
BOOL ret = FALSE;
try
{
// <20><><EFBFBD><EFBFBD><EBBAAF>ָ<EFBFBD><D6B8>callBackFun <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if ((m_ShowDlg != NULL) && (proc != NULL))
{
ret = m_ShowDlg->SetCallBackFun(proc);
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ⲿCSU<53><55>
BOOL CExportImgShowBase::SetCallBackFun(SendFilePath proc)
{
BOOL ret = FALSE;
try
{
// <20><><EFBFBD><EFBFBD><EBBAAF>ָ<EFBFBD><D6B8>callBackFun <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if ((m_ShowDlg != NULL) && (proc != NULL))
{
ret = m_ShowDlg->SetCallBackFun(proc);
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
}
// 5 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>궨λ<EAB6A8><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>ȵ<EFBFBD><C8B5>ⲿCSU<53><55>
// <20><><EFBFBD>
// 1.proc: <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
//
// <20><><EFBFBD><EFBFBD>: <20><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>TRUE<55><45><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>FALSE
BOOL CExportImgShowBase::SetCallBackFun(SendTgrLocLeadLonLatProc proc)
{
BOOL ret = FALSE;
try
{
// <20><><EFBFBD><EFBFBD><EBBAAF>ָ<EFBFBD><D6B8>callBackFun <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if ((m_ShowDlg != NULL) && (proc != NULL))
{
ret = m_ShowDlg->SetCallBackFun(proc);
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
}
// 6 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿCSU<53><55>
// <20><><EFBFBD>
// 1.proc: <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
//
// <20><><EFBFBD><EFBFBD>: <20><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>TRUE<55><45><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD>FALSE
BOOL CExportImgShowBase::SetCallBackFun(SendArtilleryReviseInfoProc proc)
{
BOOL ret = FALSE;
try
{
// <20><><EFBFBD><EFBFBD><EBBAAF>ָ<EFBFBD><D6B8>callBackFun <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
if ((m_ShowDlg != NULL) && (proc != NULL))
{
ret = m_ShowDlg->SetCallBackFun(proc);
}
return ret;
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>浱ǰ֡<C7B0><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
void CExportImgShowBase::SaveCurrentFrame(CString sSaveFolder)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE || m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->SetSaveCurrentImgFolder(sSaveFolder);
m_ShowDlg->SaveCurrentDecodedFrame();
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>18֡<38><D6A1>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>Ϣ
void CExportImgShowBase::MemPreMultiFrame(BOOL bMem)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
m_ShowDlg->MemPreMultiFrame(bMem);
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>ʵ<EFBFBD><CAB5>ͼ<EFBFBD><CDBC><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>С
BOOL CExportImgShowBase::OnMouseWheelZoomInOutImg(UINT nFlags, short zDelta, CPoint pt)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd()/* && nFlags == MK_CONTROL*/)
{
// <20><><EFBFBD><EFBFBD>VideoShowDlg<6C><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OnMouseWheel <20><><EFBFBD><EFBFBD>SrcFrame
return m_ShowDlg->OnMouseWheel(nFlags, zDelta, pt);
}
}
catch(cv::Exception &e)
{
e.msg;
return FALSE;
}
catch(...)
{
return FALSE;
}
return FALSE;
}
// <20><><EFBFBD>ܣ<EFBFBD>ȡ<EFBFBD><C8A1>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CExportImgShowBase::CancelTargetPlot()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
m_ShowDlg->OnConcelTargetPlot();
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC>ȥ<EFBFBD><C8A5>
void CExportImgShowBase::AdjustImgDehaze(BOOL bAdjust, int A_MAX, double degree)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->AdjustImgDehaze(bAdjust, A_MAX, degree);
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>
void CExportImgShowBase::AdjustImgIntensity(BOOL bAdjust, int degree)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->AdjustImgIntensity(bAdjust, degree);
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Աȶȵ<C8B6><C8B5><EFBFBD>
void CExportImgShowBase::AdjustImgContrast(BOOL bAdjust, int degree)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->AdjustImgContrast(bAdjust, degree);
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>
void CExportImgShowBase::AdjustImgDefinition(BOOL bAdjust, int degree)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->AdjustImgDefinition(bAdjust, degree);
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͼ<EFBFBD><CDBC>״̬
void CExportImgShowBase::ReturnToPreImgState()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->ReturnToPreImgState();
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ԭʼͼ<CABC><CDBC>״̬
void CExportImgShowBase::ReturnToSrcImgState()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
if (m_ShowDlg->GetFirstSignal() == FALSE || m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->ReturnToSrcImgState();
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>浱ǰͼ<C7B0><CDBC>ΪTIFF<46><46>ʽ
void CExportImgShowBase::SaveImgToTiff()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
// <20><><EFBFBD>ⲿ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
{
m_ShowDlg->SaveToGeoTiff();
}
}
}
catch(cv::Exception &e)
{
e.msg;
return;
}
catch(...)
{
return;
}
}
// 18 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><E0BCAD><EFBFBD><EFBFBD>
void CExportImgShowBase::SetImgEditType(int type)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
m_ShowDlg->SetImgEditType(type);
}
}
catch(cv::Exception &e)
{
e.what();
}
catch (...)
{
}
}
// 19 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡͼ<C8A1><CDBC><EFBFBD>༭ģʽ
bool CExportImgShowBase::GetImgEditMode()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
{
return m_ShowDlg->GetImgEditMode();
}
}
catch(cv::Exception &e)
{
e.what();
return true;
}
catch (...)
{
return true;
}
return true;
}
// 21 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾͼ<CABE><CDBC>
// <20><><EFBFBD>
// <20><>
// <20><><EFBFBD>أ<EFBFBD>
// <20><>
void CExportImgShowBase::GeoCorrectAndShowImg()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
return m_ShowDlg->GeoCorrectAndShowImg();
}
}
catch(cv::Exception &e)
{
e.what();
return;
}
catch (...)
{
return;
}
}
// 22 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ʾͼ<CABE><CDBC>
// <20><><EFBFBD>
// <20><>
// <20><><EFBFBD>أ<EFBFBD>
// <20><>
bool CExportImgShowBase::GetCurrentImg(int &imgWidth, int &imgHeight, int& bitCount, uchar* &pImgData)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
cv::Mat img = m_ShowDlg->GetCurrentImg();
if (img.empty() == true)
{
return false;
}
else
{
imgWidth = img.cols;
imgHeight = img.rows;
if (img.type() == CV_8UC1)
{
bitCount = 8;
}
else if (img.type() == CV_8UC3)
{
bitCount = 24;
}
else
{
return false;
}
pImgData = nullptr;
pImgData = new uchar[imgHeight * imgWidth * bitCount];
if (pImgData != nullptr)
{
memcpy(pImgData, img.data, imgHeight * imgWidth * (bitCount / 8));
}
return true;
}
}
}
catch(cv::Exception &e)
{
e.what();
return false;
}
catch (...)
{
return false;
}
return false;
}
// 23 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡͼ<C8A1><CDBC><EFBFBD>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>
// <20><>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 1<><31>leftLon <20><><EFBFBD><EFBFBD>
// 2<><32>topLat <20><>γ
// 3<><33>rigtLon <20><><EFBFBD><EFBFBD>
// 4<><34>bottomLat <20><>γ
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
// <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true,ʧ<>ܷ<EFBFBD><DCB7><EFBFBD>false
bool CExportImgShowBase::GetImgBoundingBox(double &leftLon, double &topLat, double &rigtLon, double &bottomLat)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
return m_ShowDlg->GetImgBoundingBox(leftLon, topLat, rigtLon, bottomLat);
}
}
catch(cv::Exception &e)
{
e.what();
return false;
}
catch (...)
{
return false;
}
return false;
}
// 23 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ʾͼ<CABE><CDBC><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>γ<EFBFBD><CEB3>
// <20><><EFBFBD>
// <20><>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 1<><31>lon <20><><EFBFBD><EFBFBD>
// 2<><32>lat γ<><CEB3>
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
// <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true,ʧ<>ܷ<EFBFBD><DCB7><EFBFBD>false
bool CExportImgShowBase::GetCurrentImgCerterLonLat(double &lon, double &lat)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
return m_ShowDlg->GetCurrentImgCenterLonLat(lon, lat);
}
}
catch(cv::Exception &e)
{
e.what();
return false;
}
catch (...)
{
return false;
}
return false;
}
// 24 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>עͼ<D7A2>񣨾<EFBFBD><F1A3A8BE>Ρ<EFBFBD><CEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5>
// <20><><EFBFBD>
// 1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5> <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
// <20><>
void CExportImgShowBase::MarkRegionOnImg(std::vector<std::vector<cv::Point>> &valisContours)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
m_ShowDlg->MarkRegionOnImg(valisContours);
}
}
catch(cv::Exception &e)
{
e.what();
}
catch (...)
{
}
}
// 25 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC>˵<EFBFBD>
// <20><><EFBFBD>
// 1. bClose Ĭ<><C4AC>true<75>ر<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
// <20><>
void CExportImgShowBase::CloseRightBtnDownMenu(bool bClose)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
m_ShowDlg->CloseRightBtnDownMenu(bClose);
}
}
catch(cv::Exception &e)
{
e.what();
}
catch (...)
{
}
}
// 26 <20><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>
// 1. str <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
// <20><>
void CExportImgShowBase::SetThemeText(CString str)
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
m_ShowDlg->SetThemeText(str);
}
}
catch(cv::Exception &e)
{
e.what();
}
catch (...)
{
}
}
// 28 <20><><EFBFBD>ܣ<EFBFBD>ͼ<EFBFBD><CDBC>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ڲ<EFBFBD>Ŀ<EFBFBD>궨λ<EAB6A8><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CExportImgShowBase::LeadImgLoc()
{
try
{
if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
{
m_ShowDlg->LeadImgLoc();
}
}
catch(cv::Exception &e)
{
e.what();
}
catch (...)
{
}
}