| 
							
								 | 
							
							#include "StdAfx.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "ExportImgShowBase.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "ImgShowDlg.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "QB_ImgProcessFun.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "GlobalFunc.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 构造函数
 | 
						
						
						
						
							 | 
							
								 | 
							
							CExportImgShowBase::CExportImgShowBase(void)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								m_ShowDlg = NULL;
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 析构函数
 | 
						
						
						
						
							 | 
							
								 | 
							
							CExportImgShowBase::~CExportImgShowBase(void)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									ClearMemory();
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 销毁窗口
 | 
						
						
						
						
							 | 
							
								 | 
							
									 DestroyWnd();
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									m_ShowDlg = NULL;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.what();
 | 
						
						
						
						
							 | 
							
								 | 
							
									std::abort();
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									std::abort();
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:创建视频显示窗口
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::CreateWnd(const HWND hParentWnd)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								BOOL ret = FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入父窗口有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (hParentWnd == NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 基于窗口句柄,获取窗口指针
 | 
						
						
						
						
							 | 
							
								 | 
							
									CWnd* pParWnd = CWnd::FromHandle(hParentWnd);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 当m_ShowDlg为空时,创建dialog
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg == NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										//return TRUE;
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 新建视频显示窗口对象
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg = new CImgShowDlg();
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										if (pParWnd != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											// 创建窗口
 | 
						
						
						
						
							 | 
							
								 | 
							
											ret = m_ShowDlg->Create(IDD_IMG_SHOW_DIALOG, pParWnd);
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
										else
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											// 释放对象
 | 
						
						
						
						
							 | 
							
								 | 
							
											SAFE_DELETE(m_ShowDlg);
 | 
						
						
						
						
							 | 
							
								 | 
							
											m_ShowDlg = NULL;
 | 
						
						
						
						
							 | 
							
								 | 
							
										} 
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:移动(设置)窗口(整个视频显示窗口)至指定位置  
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::MoveWnd(const CRect &clientRect)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 移动窗口至指定位置
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->MoveWindow(clientRect);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 设置指北针中心坐标
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 		CRect rect;
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 		m_ShowDlg->GetClientRect(&rect);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 			POINT center;
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 			center.x = 60L;
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 			center.y = 60L;
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 			m_ShowDlg->SetNorthDirectionCenter(center);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch (...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:显示或隐藏窗口,由nCmdShow决定
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// #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
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:显示SW_SHOW 或隐藏 SW_HIDE 窗口 已验证
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::ShowWnd(const int nCmdShow)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd() != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->ShowWindow(nCmdShow);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:显示一帧图像
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 数据有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if ( (pImgInfo == NULL) || (pImgData == NULL))
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 设置一路输入正在输入标识
 | 
						
						
						
						
							 | 
							
								 | 
							
									m_ShowDlg->SetFirstSignal(TRUE);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// biBitCount 验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if(pImgInfo->bmiHeader.biBitCount != 24 && pImgInfo->bmiHeader.biBitCount != 8)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetFirstSignal(FALSE);
 | 
						
						
						
						
							 | 
							
								 | 
							
										return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 更新数据至全局变量:LatestQBData 
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (pImgInfo->bmiHeader.biWidth > 0 && 
 | 
						
						
						
						
							 | 
							
								 | 
							
										pImgInfo->bmiHeader.biHeight > 0 && 
 | 
						
						
						
						
							 | 
							
								 | 
							
										pImgData != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 设置一路输入正在输入标识
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetFirstSignal(TRUE);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 构建临时对象
 | 
						
						
						
						
							 | 
							
								 | 
							
										QBStru local;
 | 
						
						
						
						
							 | 
							
								 | 
							
										local.image.srcImg.ImgWidth  = pImgInfo->bmiHeader.biWidth;
 | 
						
						
						
						
							 | 
							
								 | 
							
										local.image.srcImg.ImgHeight = pImgInfo->bmiHeader.biHeight;
 | 
						
						
						
						
							 | 
							
								 | 
							
										local.image.srcImg.bitcount  = pImgInfo->bmiHeader.biBitCount;
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 步长:每行像素所占字节数 
 | 
						
						
						
						
							 | 
							
								 | 
							
										int lineByte = (pImgInfo->bmiHeader.biWidth * pImgInfo->bmiHeader.biBitCount / 8);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 位图数据缓冲区的大小,即图像大小
 | 
						
						
						
						
							 | 
							
								 | 
							
										int imgBufSize = pImgInfo->bmiHeader.biHeight * lineByte;
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										if ( imgBufSize > 0)
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											local.image.srcImg.buff = new BYTE[imgBufSize];
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
											if (local.image.srcImg.buff != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
											{
 | 
						
						
						
						
							 | 
							
								 | 
							
												// 复制实际字节数
 | 
						
						
						
						
							 | 
							
								 | 
							
												memcpy(local.image.srcImg.buff, pImgData, static_cast<size_t>(imgBufSize)); // 图像数据复制
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
												// 设置图像数据有效
 | 
						
						
						
						
							 | 
							
								 | 
							
												local.image.bValid = true; 
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
												// 是否需要反转
 | 
						
						
						
						
							 | 
							
								 | 
							
												if (isNeedFlip == TRUE)
 | 
						
						
						
						
							 | 
							
								 | 
							
												{
 | 
						
						
						
						
							 | 
							
								 | 
							
													FlipImgStru(&local.image.srcImg);
 | 
						
						
						
						
							 | 
							
								 | 
							
												}
 | 
						
						
						
						
							 | 
							
								 | 
							
											}
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										local.image.srcImg.BoundingBox = LBbox;
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 将 local 复制到 m_LatestQBData
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetLatestQBData(local);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetBoundingBox(LBbox);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 释放 local
 | 
						
						
						
						
							 | 
							
								 | 
							
										if (local.image.srcImg.buff != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											SAFE_DELETE_ARRAY(local.image.srcImg.buff);
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 显示图像
 | 
						
						
						
						
							 | 
							
								 | 
							
										if (m_ShowDlg != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											// 接口转换
 | 
						
						
						
						
							 | 
							
								 | 
							
											CRect ShowRegion;
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
											if (pShowRegion != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
											{
 | 
						
						
						
						
							 | 
							
								 | 
							
												ShowRegion = *pShowRegion;
 | 
						
						
						
						
							 | 
							
								 | 
							
											}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
											ret = m_ShowDlg->ShowOneImage(const_cast<BITMAPINFO*>(pImgInfo), pImgData, isNeedClip, ShowRegion, isNeedFlip, Strecth_Ratio, xyShift);
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 图像去雾 亮度调节 对比度调节 清晰度调节 复位
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetiLatest(0);    // 最近的一次
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetiPreLatest(0); // 最近的一次的前一次
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 关闭1路正在输入标识
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->SetFirstSignal(FALSE);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:解压后的情报数据处理函数
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::DisposeQBData(const QBStru* qbData)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										if (m_ShowDlg->GetFirstSignal()) // 1路信号正在输入,直接返回
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											return;
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
										else // 关闭3路信号 输入2路信号
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											// 设置2路输入正在输入标识
 | 
						
						
						
						
							 | 
							
								 | 
							
											m_ShowDlg->SetSecondSignal(TRUE);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
											// 输入二路信号
 | 
						
						
						
						
							 | 
							
								 | 
							
											m_ShowDlg->DisposeQBData(qbData);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
											// 关闭2路输入正在输入标识
 | 
						
						
						
						
							 | 
							
								 | 
							
											m_ShowDlg->SetSecondSignal(FALSE);
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:标绘目标,其中输入为目标点像素坐标 
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:标绘图像中的一块区域,其中输入为4个像素坐标点
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:标绘目标,其中输入为经纬度坐标 
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:删除视频显示窗口,同时释放所有占用资源
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::DestroyWnd()
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 释放MFC对话框资源
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->DestroyWindow();
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 释放对象
 | 
						
						
						
						
							 | 
							
								 | 
							
									SAFE_DELETE(m_ShowDlg);
 | 
						
						
						
						
							 | 
							
								 | 
							
									m_ShowDlg = NULL;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 8 功能:清理内存及记忆
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::ClearMemory()
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入函数指针callBackFun 有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->ClearMemory();
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:设置回调函数,双击像素坐标
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::SetCallBackFun(SendCoordinateProc proc)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								BOOL ret = FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入函数指针callBackFun 有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if ((m_ShowDlg != NULL) && (proc != NULL))
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										ret = m_ShowDlg->SetCallBackFun(proc);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:设置回调函数,像素信息传递到外部CSU中
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::SetCallBackFun(SendPixInfoProc proc)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								BOOL ret = FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入函数指针callBackFun 有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if ((m_ShowDlg != NULL) && (proc != NULL))
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										ret = m_ShowDlg->SetCallBackFun(proc);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:设置回调函数,传递保存文件路径到外部CSU中
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::SetCallBackFun(SendFilePath proc)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								BOOL ret = FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入函数指针callBackFun 有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									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 功能:设置回调函数,目标定位导引经纬度到外部CSU中
 | 
						
						
						
						
							 | 
							
								 | 
							
							//   输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//       1.proc: 函数指针
 | 
						
						
						
						
							 | 
							
								 | 
							
							//
 | 
						
						
						
						
							 | 
							
								 | 
							
							//   输出: 设置成功返回TRUE,否则返回FALSE
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::SetCallBackFun(SendTgrLocLeadLonLatProc proc)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								BOOL ret = FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入函数指针callBackFun 有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									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 功能:设置回调函数,火炮校射信息输出到外部CSU中
 | 
						
						
						
						
							 | 
							
								 | 
							
							//   输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//       1.proc: 函数指针
 | 
						
						
						
						
							 | 
							
								 | 
							
							//
 | 
						
						
						
						
							 | 
							
								 | 
							
							//   输出: 设置成功返回TRUE,否则返回FALSE
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::SetCallBackFun(SendArtilleryReviseInfoProc proc)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								BOOL ret = FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									// 输入函数指针callBackFun 有效性验证
 | 
						
						
						
						
							 | 
							
								 | 
							
									if ((m_ShowDlg != NULL) && (proc != NULL))
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										ret = m_ShowDlg->SetCallBackFun(proc);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
									return ret;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:保存当前帧至本地文件
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:是否需要记忆前面多帧(18帧)图像信息
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:通过鼠标滚轮,实现图像放大缩小
 | 
						
						
						
						
							 | 
							
								 | 
							
							BOOL CExportImgShowBase::OnMouseWheelZoomInOutImg(UINT nFlags, short zDelta, CPoint pt)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL  && m_ShowDlg->GetSafeHwnd()/* && nFlags == MK_CONTROL*/)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 调用VideoShowDlg里面的 OnMouseWheel 操作SrcFrame
 | 
						
						
						
						
							 | 
							
								 | 
							
										return m_ShowDlg->OnMouseWheel(nFlags, zDelta, pt);
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
								return FALSE;
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:取消目标标绘
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::CancelTargetPlot()
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL && m_ShowDlg->GetSafeHwnd())
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->OnConcelTargetPlot();
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:图像去雾
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:图像亮度调节
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:图像对比度调节
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:图像清晰度调节
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:返回图像调节上一步图像状态
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:返回原始图像状态
 | 
						
						
						
						
							 | 
							
								 | 
							
							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;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 功能:保存当前图像为TIFF格式
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::SaveImgToTiff()
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL  && m_ShowDlg->GetSafeHwnd())
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										// 无外部信号输入 本地操作
 | 
						
						
						
						
							 | 
							
								 | 
							
										if (m_ShowDlg->GetFirstSignal() == FALSE && m_ShowDlg->GetSecondSignal() == FALSE)
 | 
						
						
						
						
							 | 
							
								 | 
							
										{
 | 
						
						
						
						
							 | 
							
								 | 
							
											m_ShowDlg->SaveToGeoTiff();
 | 
						
						
						
						
							 | 
							
								 | 
							
										}
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.msg;
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									return;
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							}
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// 18 功能:设置图像编辑类型
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:获取图像编辑模式
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:几何校正图像并显示图像
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无       
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:获取当前显示图像
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无       
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:获取图像边界地理坐标
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输出:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         1:leftLon   西经
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         2:topLat    北纬
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         3:rigtLon   东经
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         4:bottomLat 南纬
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回值:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         成功返回true,失败返回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 功能:获取当前显示图像中心经纬度
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输出:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         1:lon 经度
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         2:lat 纬度
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回值:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         成功返回true,失败返回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 功能:标注图像(矩形、区域边缘)
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         1. 区域边缘点 集合
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输出:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回值:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:屏蔽右键菜单
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         1. bClose 默认true关闭
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输出:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回值:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:设置空屏文字
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输入:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         1. str 主题文字
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    输出:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							//    返回值:
 | 
						
						
						
						
							 | 
							
								 | 
							
							//         无
 | 
						
						
						
						
							 | 
							
								 | 
							
							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 功能:图像位置导引(同内部目标定位导引)
 | 
						
						
						
						
							 | 
							
								 | 
							
							void CExportImgShowBase::LeadImgLoc()
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
								try
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									if (m_ShowDlg != NULL  && m_ShowDlg->GetSafeHwnd() != NULL)
 | 
						
						
						
						
							 | 
							
								 | 
							
									{
 | 
						
						
						
						
							 | 
							
								 | 
							
										m_ShowDlg->LeadImgLoc();
 | 
						
						
						
						
							 | 
							
								 | 
							
									}
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch(cv::Exception &e)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
									e.what();
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
								catch (...)
 | 
						
						
						
						
							 | 
							
								 | 
							
								{
 | 
						
						
						
						
							 | 
							
								 | 
							
								}
 | 
						
						
						
						
							 | 
							
								 | 
							
							} |