|
|
|
|
#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>1·<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>3·<33>ź<EFBFBD> <20><><EFBFBD><EFBFBD>2·<32>ź<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>2·<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>2·<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 (...)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|