|
|
#pragma once
|
|
|
#include "resource.h"
|
|
|
|
|
|
// 回调函数定义
|
|
|
#include "CallBackDef.h"
|
|
|
|
|
|
// openCV
|
|
|
#include <opencv2\opencv.hpp>
|
|
|
using namespace cv;
|
|
|
|
|
|
#include <deque> // 队列
|
|
|
using namespace std;
|
|
|
|
|
|
// 包含情报结构体文件
|
|
|
#include "QBStru.h"
|
|
|
|
|
|
// 快速查找图像
|
|
|
#include "FastLookUpDlg.h"
|
|
|
|
|
|
|
|
|
// CImgShowDlg 对话框
|
|
|
|
|
|
class CImgShowDlg : public CDialog
|
|
|
{
|
|
|
DECLARE_DYNAMIC(CImgShowDlg)
|
|
|
|
|
|
public:
|
|
|
CImgShowDlg(CWnd* pParent = NULL); // 标准构造函数
|
|
|
virtual ~CImgShowDlg();
|
|
|
|
|
|
// 对话框数据
|
|
|
enum { IDD = IDD_IMG_SHOW_DIALOG };
|
|
|
|
|
|
protected:
|
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
|
|
|
|
|
public: /* part1:公有成员函数 */
|
|
|
|
|
|
// 功能:设置回调函数
|
|
|
// 输入:
|
|
|
// 1: proc: 函数指针
|
|
|
// 返回值:设置成功返回TRUE,否则返回FALSE
|
|
|
BOOL SetCallBackFun(SendCoordinateProc proc);
|
|
|
|
|
|
|
|
|
// 功能:设置回调函数,像素信息传递到外部CSU中
|
|
|
// 输入:
|
|
|
// 1.proc: 函数指针
|
|
|
//
|
|
|
// 输出: 设置成功返回TRUE,否则返回FALSE
|
|
|
BOOL SetCallBackFun(SendPixInfoProc proc);
|
|
|
|
|
|
|
|
|
// 功能:设置回调函数,传递保存文件路径到外部CSU中
|
|
|
// 输入:
|
|
|
// 1.proc: 函数指针
|
|
|
//
|
|
|
// 输出: 设置成功返回TRUE,否则返回FALSE
|
|
|
BOOL SetCallBackFun(SendFilePath proc);
|
|
|
|
|
|
|
|
|
// 功能:设置回调函数,目标定位导引经纬度到外部CSU中
|
|
|
// 输入:
|
|
|
// 1.proc: 函数指针
|
|
|
//
|
|
|
// 输出: 设置成功返回TRUE,否则返回FALSE
|
|
|
BOOL SetCallBackFun(SendTgrLocLeadLonLatProc proc);
|
|
|
|
|
|
|
|
|
// 功能:设置回调函数,目标定位导引经纬度到外部CSU中
|
|
|
// 输入:
|
|
|
// 1.proc: 函数指针
|
|
|
//
|
|
|
// 输出: 设置成功返回TRUE,否则返回FALSE
|
|
|
BOOL SetCallBackFun(SendArtilleryReviseInfoProc proc);
|
|
|
|
|
|
|
|
|
// 1.2 功能:在对话框中显示一帧图像
|
|
|
// 输入:
|
|
|
// 1: pImgInfo: 图像头
|
|
|
// 2: pImgData: 图像数据
|
|
|
// 3: isNeedClip: 是否只显示图像部分区域; 如果TRUE,根据参数4确定显示区域,否则,全景显示;默认为FALSE,即全景显示
|
|
|
// 4:ShowRegion:要显示的部分图像区域,当ShowRegion值不合理时,全景显示图像
|
|
|
// 5:isNeedFlip:图像是否反转显示,TRUE时反转显示
|
|
|
// 6: StrecthRatio:图像拉伸比例控制
|
|
|
// 7:xyShift:图像平移控制
|
|
|
//
|
|
|
// 返回值:显示成功返回TRUE,否则返回FALSE
|
|
|
BOOL ShowOneImage(const BITMAPINFO* pImgInfo,
|
|
|
BYTE* pImgData,
|
|
|
BOOL isNeedClip = FALSE,
|
|
|
const CRect &ShowRegion = CRect(),
|
|
|
BOOL isNeedFlip = FALSE,
|
|
|
float StrecthRatio = 1.0F,
|
|
|
POINT xyShift = POINT());
|
|
|
|
|
|
// 1.3 功能:在对话框中显示一帧图像
|
|
|
// 输入:
|
|
|
// 1: img: OpenCV图像结构体
|
|
|
// 2: isNeedClip: 是否只显示图像部分区域; 如果TRUE,根据参数3确定显示区域,否则,全景显示;默认为FALSE,即全景显示
|
|
|
// 3:ShowRegion:要显示的部分图像区域,当ShowRegion值不合理时,全景显示图像
|
|
|
// 4:Strecth_Ratio:图像显示拉伸比例控制 图像平移控制
|
|
|
// 5:xyShift:图像平移控制
|
|
|
//
|
|
|
// 返回值:显示成功返回TRUE,否则返回FALSE
|
|
|
BOOL ShowOneImage( const IplImage* img,
|
|
|
BOOL isNeedClip = FALSE,
|
|
|
const CRect &ShowRegion = CRect(),
|
|
|
float StrecthRatio = 1.0F,
|
|
|
POINT xyShift = POINT());
|
|
|
|
|
|
// 1.4 功能:在对话框中显示一帧图像
|
|
|
// 输入:
|
|
|
// 1: img: OpenCV图像结构体
|
|
|
// 2:Strecth_Ratio:图像显示拉伸比例控制
|
|
|
// 3:xyShift:图像平移控制
|
|
|
//
|
|
|
// 返回值:显示成功返回TRUE,否则返回FALSE
|
|
|
BOOL ShowWholeImage(const IplImage* img, float StrecthRatio = 1.0F, POINT &xyShift = POINT());
|
|
|
|
|
|
// 1.5 功能:设置目标点像素坐标,如果设置合理,在在显示窗口中标绘目标
|
|
|
// 返回值:始终返回TRUE,不对输入值做判断
|
|
|
BOOL SetTargetPixelCoordinate(const CPoint &point);
|
|
|
|
|
|
// 1.6 功能:绘制四个角点连成的区域,用于图像拼接时标注当前视场
|
|
|
// 返回值:数值有效返回TRUE,否则返回FALSE
|
|
|
BOOL SetQuadrangleCorners(const POINT *pts);
|
|
|
|
|
|
// 功能:标绘目标,其中输入为经纬度坐标
|
|
|
// 输入:
|
|
|
// 1. pt:经纬度坐标
|
|
|
//
|
|
|
// 输出:在窗口标绘目标
|
|
|
// 注意事项:如果输入图像同时,对目标进行标绘,需要在 函数4(ShowImage)输入之后 输入本函数
|
|
|
void SetTgtLocLeadLonLat(double lon, double lat);
|
|
|
|
|
|
// 1.7 功能:绘制指北针
|
|
|
// 输入:
|
|
|
// 1.center: 中心点坐标
|
|
|
// 2.angle: 角度
|
|
|
// 输出: 无
|
|
|
// 函数状态:已验证
|
|
|
//void DrawNorthDirection(const POINT ¢er, double angle);
|
|
|
|
|
|
// 1.8 功能:设置指北针中心
|
|
|
// 输入:
|
|
|
// 1.center: 中心点坐标
|
|
|
//
|
|
|
// 输出: 赋值给私有成员变量m_NorthDirectionCenter
|
|
|
// 函数状态:已验证
|
|
|
//void SetNorthDirectionCenter(const POINT ¢er);
|
|
|
|
|
|
// 1.9 功能:基于全局变量LatestQBData 显示图像和指北针
|
|
|
// 说明:当dst有效时,优先显示dst,否则显示src
|
|
|
void ShowLatestQBData();
|
|
|
|
|
|
// 1.10 功能:获取双击目标点坐标 m_LButtonDblClkPixelCoordinate
|
|
|
CPoint GetTargetCoordinate();
|
|
|
|
|
|
// 1.11 功能:在对话框左上角显示信息
|
|
|
void ShowMessageOnDialog(CString msg);
|
|
|
|
|
|
// 1.12 功能:保存当前帧图像及信息
|
|
|
// 输入:
|
|
|
// 输出: 保存数据到本地文件,成功时返回TRUE,否则返回FALSE
|
|
|
// 说明:存储条件:图像数据有效(复接数据有效则存储,无效则不存);
|
|
|
BOOL SaveCurrentDecodedFrame();
|
|
|
|
|
|
// 1.13 功能:是否需要记忆前面多帧(18帧)图像信息
|
|
|
// 输入:
|
|
|
// 1. bMem TRUE:记忆 FALSE:不记忆
|
|
|
// 输出:无
|
|
|
void MemPreMultiFrame(BOOL bMem = TRUE);
|
|
|
|
|
|
// 1.14 功能:保存多帧图像及信息
|
|
|
// 输入:
|
|
|
// 输出: 保存数据到本地文件,返回成功保存的帧数
|
|
|
int SavePreMultiDecodedFrames();
|
|
|
|
|
|
// 1.15 功能:设置m_LatestQBData
|
|
|
void SetLatestQBData(const QBStru &qbData);
|
|
|
|
|
|
// 1.16 功能:释放m_LatestQBData
|
|
|
void ReleaseLatestQBData();
|
|
|
|
|
|
// 设置经纬度盒子
|
|
|
void SetBoundingBox(GeoBoundingBox box);
|
|
|
|
|
|
// 1.17 功能:QBStru结构体情报数据处理函数
|
|
|
// 输入:
|
|
|
// 1.qbData: 情报数据结构体变量指针
|
|
|
//
|
|
|
// 输出: 无
|
|
|
void DisposeQBData(const QBStru* qbData);
|
|
|
|
|
|
|
|
|
// 功能:保存m_LatestQBData为tiff,并回调保存路径
|
|
|
void SaveToGeoTiff();
|
|
|
|
|
|
// 1.25 设置/获取1路信号是否正在输入
|
|
|
void SetFirstSignal(BOOL bflag);
|
|
|
BOOL GetFirstSignal();
|
|
|
|
|
|
// 1.26 设置/获取2路信号是否正在输入
|
|
|
void SetSecondSignal(BOOL bflag);
|
|
|
BOOL GetSecondSignal();
|
|
|
|
|
|
// 1.27 设置/获取iLatest:刚才是什么图像处理操作
|
|
|
void SetiLatest(int i);
|
|
|
int GetiLatest();
|
|
|
|
|
|
// 1.28 设置/获取iPreLatest:上次是什么图像处理操作
|
|
|
void SetiPreLatest(int i);
|
|
|
int GetiPreLatest();
|
|
|
|
|
|
// 1.29 功能:清理内存及记忆
|
|
|
void ClearMemory();
|
|
|
|
|
|
// 功能:图像去雾
|
|
|
void AdjustImgDehaze(BOOL bAdjust, int A_MAX, double degree);
|
|
|
|
|
|
// 功能:图像亮度调节
|
|
|
void AdjustImgIntensity(BOOL bAdjust, int degree);
|
|
|
|
|
|
// 功能:图像对比度调节
|
|
|
void AdjustImgContrast(BOOL bAdjust, int degree);
|
|
|
|
|
|
// 功能:图像清晰度调节
|
|
|
void AdjustImgDefinition(BOOL bAdjust, int degree);
|
|
|
|
|
|
|
|
|
// 功能:返回图像调节上一步图像状态
|
|
|
void ReturnToPreImgState();
|
|
|
|
|
|
// 功能:返回原始图像状态
|
|
|
void ReturnToSrcImgState();
|
|
|
|
|
|
// 18 功能:设置图像编辑类型
|
|
|
void SetImgEditType(int type);
|
|
|
|
|
|
// 获取图像编辑模式 true 增强 false 标记
|
|
|
bool GetImgEditMode();
|
|
|
|
|
|
// 20 功能:显示记忆图像队列中的指定某一张图像
|
|
|
// 输入:
|
|
|
// 1:order 图像序号
|
|
|
// 返回:
|
|
|
// 无
|
|
|
void ShowSelectedImgInMem(int order);
|
|
|
|
|
|
// 设置文件夹
|
|
|
void SetSaveCurrentImgFolder(CString str); // 保存当前图像文件夹
|
|
|
void SetSavePreMultiImgFolder(CString str); // 保存多帧图像文件夹
|
|
|
|
|
|
// 21 功能:几何校正并显示图像
|
|
|
void GeoCorrectAndShowImg();
|
|
|
|
|
|
|
|
|
// 22 功能:获取当前显示图像
|
|
|
cv::Mat GetCurrentImg();
|
|
|
|
|
|
|
|
|
// 功能:获取当前图像中心的经纬度坐标
|
|
|
bool GetCurrentImgCenterLonLat(double &lon, double &lat);
|
|
|
|
|
|
|
|
|
// 24 功能:标注图像(矩形、区域边缘)
|
|
|
// 输入:
|
|
|
// 1. 区域边缘点 集合
|
|
|
void MarkRegionOnImg(std::vector<std::vector<cv::Point>> &valisContours);
|
|
|
|
|
|
// 功能:屏蔽右键按钮菜单
|
|
|
void CloseRightBtnDownMenu(bool bClose = true);
|
|
|
|
|
|
// 功能:设置空屏文字
|
|
|
void SetThemeText(CString str);
|
|
|
|
|
|
|
|
|
// 功能:获取图像边界地理坐标
|
|
|
// 输入:
|
|
|
// 无
|
|
|
// 输出:
|
|
|
// 1:leftLon 西经
|
|
|
// 2:topLat 北纬
|
|
|
// 3:rigtLon 东经
|
|
|
// 4:bottomLat 南纬
|
|
|
// 返回值:
|
|
|
// 成功返回true,失败返回false
|
|
|
bool GetImgBoundingBox(double &leftLon, double &topLat, double &rigtLon, double &bottomLat);
|
|
|
|
|
|
|
|
|
// 功能:图像位置导引(同内部目标定位导引)
|
|
|
void LeadImgLoc();
|
|
|
|
|
|
|
|
|
private: /* part3:私有成员函数 */
|
|
|
|
|
|
// 3.1 功能:基于当前图像显示状态 和 像素坐标(图像某点的像素坐标),求该像素坐标对应的客户区坐标
|
|
|
// 输入:
|
|
|
// 1: PixelCoordinate: 像素坐标
|
|
|
// 返回值:当前像素坐标的客户区坐标,当该像素未显示时,返回无效值(-100,-100)
|
|
|
CPoint GetScreenCoordinateBasedOnPixelCoordinate(const POINT &PixelCoordinate);
|
|
|
|
|
|
|
|
|
// 3.2 功能:给定屏幕坐标,在屏幕中绘制标框, (可能)同时清除上次绘制的标框
|
|
|
// 输入:
|
|
|
// 1: screenCoordinate: 屏幕坐标
|
|
|
// 返回值:无
|
|
|
void DrawSquareOnScreen(const POINT &screenCoordinate, BOOL bErase = TRUE);
|
|
|
|
|
|
// 3.3 功能: 当放大图像时,自适应计算新的图像显示区
|
|
|
// 输入:
|
|
|
// 1: bIn : 当前鼠标位置是否在图像上,在图像上为TRUE,不在图像上为FALSE
|
|
|
// 2: pixelCoordinate : 当前鼠标位置对应的图像像素坐标
|
|
|
// 输出: 函数返回图像显示区域
|
|
|
//CRect GetNewRegionWhenZoomIn();
|
|
|
|
|
|
|
|
|
// 3.4 功能: 当放大缩小时,自适应计算新的图像显示区
|
|
|
//
|
|
|
// 输出: 函数返回图像显示区域
|
|
|
//CRect GetNewRegionWhenZoomOut();
|
|
|
|
|
|
CRect GetNewRegionWhenZoom(bool in);
|
|
|
|
|
|
|
|
|
// 3.5 功能: 当漫游图像时,自适应计算新的图像显示区
|
|
|
// 输入:
|
|
|
// 1: deltaX : x方向图像像素偏移量
|
|
|
// 2: deltaY : y方向图像像素偏移量
|
|
|
// 输出: 函数返回图像显示区域
|
|
|
CRect GetNewRegionWhenRoamImg(int deltaX, int deltaY);
|
|
|
|
|
|
|
|
|
// 3.6 功能: 执行图像放大操作
|
|
|
// 输入:
|
|
|
// 1: point: 当前鼠标点击位置坐标(屏幕坐标)
|
|
|
void DoZoomInImg();
|
|
|
|
|
|
|
|
|
// 3.7 功能: 执行图像缩小操作
|
|
|
void DoZoomOutImg();
|
|
|
|
|
|
|
|
|
// 3.8 功能: 执行图像全景(全屏)操作
|
|
|
void DoZoomFitImg();
|
|
|
|
|
|
|
|
|
// 3.9 功能:设置图像在屏幕中的显示比例
|
|
|
// 输入:ratio 【0 1】
|
|
|
// 说明:0 最小 1 全屏
|
|
|
void SetImgShowRationOnScreen(float ratio);
|
|
|
|
|
|
// 3.10 功能:m_LatestQBData 入队列
|
|
|
// 输入:
|
|
|
// 输出:
|
|
|
// 说明:只有当m_LatestQBData图像数据有效时,方可入队
|
|
|
void PushLatestQBData2Deque();
|
|
|
|
|
|
// 3.11 功能:给定屏幕4个坐标,在屏幕中绘制四边形, (可能)同时清除上次绘制
|
|
|
// 输入:
|
|
|
// 1: screenCoordinate: 屏幕坐标
|
|
|
// 返回值:无
|
|
|
void DrawQuadrangleOnScreen(const POINT screenCoordinate[4], BOOL bErase = TRUE);
|
|
|
|
|
|
// 功能:向图像中添加 经纬高 位置信息
|
|
|
// 输入:
|
|
|
// 1: imgData: 图像结构体
|
|
|
// 2: pt: 像素坐标
|
|
|
// 3. Lon: 经度
|
|
|
// 4. Lat: 纬度
|
|
|
// 5. H: 高度
|
|
|
// 返回值:无
|
|
|
void TagLocationOnImgStru(ImgStru &imgData, cv::Point pt, double Lon, double Lat, double H);
|
|
|
|
|
|
// 功能:向图像中添加 经纬高 位置信息
|
|
|
// 输入:
|
|
|
// 1: qb: 情报结构体
|
|
|
// 2: pt: 像素坐标
|
|
|
// 3. Lon: 经度
|
|
|
// 4. Lat: 纬度
|
|
|
// 5. H: 高度
|
|
|
// 返回值:无
|
|
|
void TagLocationOnQBData(QBStru &qb, cv::Point pt, double Lon, double Lat, double H);
|
|
|
|
|
|
// 功能:向图像中添加 经纬高 位置信息
|
|
|
// 输入:
|
|
|
// 1: img: 情报结构体
|
|
|
// 2: pt: 像素坐标
|
|
|
// 3. Lon: 经度
|
|
|
// 4. Lat: 纬度
|
|
|
// 5. H: 高度
|
|
|
// 返回值:无
|
|
|
void TagLocationOnMatImg(cv::Mat &img, cv::Point pt, double Lon, double Lat, double H);
|
|
|
|
|
|
// 功能:向图像中添加 文字 信息
|
|
|
// 输入:
|
|
|
// 1: qb: 情报结构体
|
|
|
// 2: pt: 像素坐标
|
|
|
// 3. text: 文字信息
|
|
|
// 返回值:无
|
|
|
void TagTextOnQBData(QBStru &qb, cv::Point pt, CString text);
|
|
|
|
|
|
// 功能:向图像中添加 文字 信息
|
|
|
// 输入:
|
|
|
// 1: imgData: 图像结构体
|
|
|
// 2: pt: 像素坐标
|
|
|
// 3. text: 文字信息
|
|
|
// 返回值:无
|
|
|
void TagTextOnImgStru(ImgStru &imgData, cv::Point pt, CString text);
|
|
|
|
|
|
// 功能:向图像中添加 文字 信息
|
|
|
// 输入:
|
|
|
// 1: img: 情报结构体
|
|
|
// 2: pt: 像素坐标
|
|
|
// 3. text: 文字信息
|
|
|
// 返回值:无
|
|
|
void TagTextOnMatImg(cv::Mat &img, cv::Point pt, CString text);
|
|
|
|
|
|
// 功能:向图像中标绘 火炮校射 信息
|
|
|
// 输入:
|
|
|
// 1: img: 图像
|
|
|
// 2: pt1: 像素坐标 起点
|
|
|
// 3: pt2: 像素坐标 终点
|
|
|
// 4. LLA1: 起点经纬高
|
|
|
// 5. LLA2: 终点经纬高
|
|
|
// 返回值:无
|
|
|
void TagInfoReviseShotOnMatImg(cv::Mat &img, cv::Point pt1, cv::Point pt2, double *LLA1, double *LLA2);
|
|
|
|
|
|
// 功能:向图像中标绘 火炮校射 信息
|
|
|
// 输入:
|
|
|
// 1: imgData: 图像结构体
|
|
|
// 2: pt1: 像素坐标 起点
|
|
|
// 3: pt2: 像素坐标 终点
|
|
|
// 4. LLA1: 起点经纬高
|
|
|
// 5. LLA2: 终点经纬高
|
|
|
// 返回值:无
|
|
|
void TagInfoReviseShotOnImgStru(ImgStru &imgData, cv::Point pt1, cv::Point pt2, double *LLA1, double *LLA2);
|
|
|
|
|
|
// 功能:向图像中标绘 火炮校射 信息
|
|
|
// 输入:
|
|
|
// 1: imgData: 图像结构体
|
|
|
// 2: pt1: 像素坐标 起点
|
|
|
// 3: pt2: 像素坐标 终点
|
|
|
// 4. LLA1: 起点经纬高
|
|
|
// 5. LLA2: 终点经纬高
|
|
|
// 返回值:无
|
|
|
void TagInfoReviseShotOnQBData(QBStru &qbData, cv::Point pt1, cv::Point pt2, double *LLA1, double *LLA2);
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 功能:通过鼠标右键加载一帧图像,接口与模块函数:ShowImage 接口完全一致
|
|
|
void LoadOneImgFromMenu(const BITMAPINFO* pImgInfo,
|
|
|
BYTE* pImgData,
|
|
|
GeoBoundingBox LBbox = GeoBoundingBox(),
|
|
|
BOOL isNeedFlip = FALSE,
|
|
|
BOOL isNeedClip = FALSE,
|
|
|
const CRect* pShowRegion = NULL,
|
|
|
float Strecth_Ratio = 1.0F,
|
|
|
POINT xyShift = POINT());
|
|
|
|
|
|
|
|
|
private: /* part4:私有成员变量 */
|
|
|
|
|
|
// 当前情报数据结构体
|
|
|
QBStru m_LatestQBData;
|
|
|
|
|
|
// 中间变量:图像去雾、亮度、对比度、清晰度调节的中间变量
|
|
|
ImgStru m_midImg;
|
|
|
|
|
|
// 回调函数指针变量:文件路径
|
|
|
SendFilePath m_lpSendFilePath;
|
|
|
|
|
|
// 回调函数指针变量
|
|
|
SendCoordinateProc m_lpSendCoordinate;
|
|
|
|
|
|
// 回调函数指针变量:像素信息
|
|
|
SendPixInfoProc m_lpSendPixInfoProc;
|
|
|
|
|
|
// 回调函数指针变量:定位导引 经纬度
|
|
|
SendTgrLocLeadLonLatProc m_lpSendTgrLocLeadLonLat;
|
|
|
|
|
|
// 回调函数指针变量:火炮校射信息
|
|
|
SendArtilleryReviseInfoProc m_lpSendArtilleryReviseInfo;
|
|
|
|
|
|
// 4.1 鼠标移动时 持续计算当前点的 像素坐标 经纬度坐标 RGB值
|
|
|
cv::Point2i m_imgPixel_XY_Coordinate;
|
|
|
cv::Point3d m_imgPixel_LBH_Coordinate;
|
|
|
|
|
|
// 4.2 当前显示的图像区域(单位:像素)
|
|
|
CRect m_ShowRegion;
|
|
|
|
|
|
// 4.3 当前显示的图像区域在dialog中占有的空间(单位:像素)
|
|
|
// 注:每次显示图像时更新
|
|
|
CRect m_ShowRegionOnScreen;
|
|
|
|
|
|
// 4.4 图像控件宽
|
|
|
int m_PicCtrlWidth;
|
|
|
|
|
|
// 4.5 图像控件高
|
|
|
int m_PicCtrlHeight;
|
|
|
|
|
|
// 4.6 图像执行放大、缩小、漫游操作中,当左键按下时,鼠标点对应的图像像素坐标
|
|
|
CPoint m_LButtonDownPixelCoordinate;
|
|
|
|
|
|
// 4.7 当前是否满足图像漫游条件
|
|
|
BOOL m_bStaisfyRoamImg;
|
|
|
|
|
|
// 4.8 最近一次图像标绘画出的框(目标标绘)
|
|
|
CRect m_LatestPlotRect;
|
|
|
|
|
|
// 4.9 当前图像双击时的,像素坐标,无效时为(-1,-1)
|
|
|
CPoint m_LButtonDblClkPixelCoordinate;
|
|
|
|
|
|
// 4.10 是否在OnPaint中绘制标框的标志位
|
|
|
BOOL m_bPlotRectOnPaint;
|
|
|
|
|
|
// 4.11 绘制指北针 中心
|
|
|
POINT m_NorthDirectionCenter;
|
|
|
|
|
|
// 4.12 是否在OnPaint中绘制指北针的标志位
|
|
|
BOOL m_bPlotDirectionOnPaint;
|
|
|
|
|
|
// 4.13 左键按下时鼠标坐标
|
|
|
POINT m_LeftButtonDown;
|
|
|
|
|
|
// 4.15 当前显示的图像
|
|
|
IplImage* m_SrcFrame;
|
|
|
|
|
|
// 4.16 图像显示拉伸比例控制
|
|
|
float m_ImgRatioOnScreen;
|
|
|
|
|
|
// 4.17 图像显示 偏移量
|
|
|
POINT m_ImgShowShift;
|
|
|
|
|
|
// 4.18 1路输入标志位
|
|
|
BOOL m_bFirstSignal;
|
|
|
|
|
|
// 4.19 2路输入
|
|
|
BOOL m_bSecondSignal;
|
|
|
|
|
|
// 4.20 图像去雾 亮度调节 对比度调节 清晰度调节 最近处理的是哪个
|
|
|
int m_iLatest;
|
|
|
|
|
|
// 4.21 图像去雾 亮度调节 对比度调节 清晰度调节 最近处理的是哪个 前一个
|
|
|
int m_iPreLatest;
|
|
|
|
|
|
// 4.22 数据存储目录(根目录):【情报数据】
|
|
|
CString m_sRootFolder;
|
|
|
|
|
|
// 4.23 数据存储目录(一级子目录):【图像】
|
|
|
CString m_sImgSaveFolder;
|
|
|
|
|
|
// 4.24 是否满足图像缩小显示且偏移的条件
|
|
|
BOOL m_bSatisfyMove;
|
|
|
|
|
|
// 4.25 情报队列 存储之前的N帧情报数据
|
|
|
deque<QBStru> m_QBDataDeque;
|
|
|
|
|
|
// 4.33 是否记忆记忆前期多帧图像信息标志位
|
|
|
BOOL m_bMemPreMultiFrame;
|
|
|
|
|
|
// 4.34 图像拼接时,绘制最新图像四边形的四个角点
|
|
|
CRect m_LatestQuadrangle; // 屏幕坐标
|
|
|
POINT m_corners[4]; // 像素坐标
|
|
|
|
|
|
// 4.35 记录图像翻阅时 当前显示的图像 序号
|
|
|
int m_currentImgOrder;
|
|
|
|
|
|
// 4.36 是否绘制矩形框的标志位 记忆
|
|
|
bool m_bPlotRect;
|
|
|
|
|
|
// 经纬度盒子 读tiff图像用
|
|
|
GeoBoundingBox m_boundbingBox;
|
|
|
|
|
|
// 图像编辑类型
|
|
|
int m_iImgEditType;
|
|
|
|
|
|
bool m_bHaveOnPt; // 是否已经有一个点
|
|
|
cv::Point m_beginPixPt; // 像素起点
|
|
|
cv::Point m_endPixPt; // 像素终点
|
|
|
double m_beginLLA[3]; // 起点经纬高
|
|
|
double m_endLLA[3]; // 终点经纬高
|
|
|
|
|
|
bool m_bEnhanceEdit; // 区分上一步操作市增强还是编辑:true增强 / false编辑
|
|
|
|
|
|
// 快速查找图像对话框
|
|
|
CFastLookUpDlg *m_pFastLookUpDlg;
|
|
|
|
|
|
CPoint m_RButtonPt; // 右键坐标 用于定位导引
|
|
|
|
|
|
CString m_sSaveCurrentImgFolder; // 保存当前图像文件夹
|
|
|
CString m_sSavePreMultiImgFolder; // 保存多帧图像文件夹
|
|
|
|
|
|
// 图像标绘中心记忆
|
|
|
cv::Point m_TargetCenter;
|
|
|
|
|
|
// 图像目标标绘标记
|
|
|
BOOL m_bDrawSquareOnImg;
|
|
|
|
|
|
// 经纬度校准偏移量
|
|
|
double m_deltaLon;
|
|
|
double m_deltaLat;
|
|
|
|
|
|
// 是否关闭右键按钮菜单
|
|
|
bool m_bCloseRughtBtnMenu;
|
|
|
|
|
|
// 主题文字
|
|
|
CString m_sThemeText;
|
|
|
|
|
|
// 目标抓取开关
|
|
|
bool m_bGetTgtImgOn;
|
|
|
|
|
|
// 图像裁剪开关
|
|
|
bool m_bClipImgOn;
|
|
|
|
|
|
// 像素坐标
|
|
|
CPoint m_clipImgFirstPt;
|
|
|
CPoint m_clipImgSecondPt;
|
|
|
// 屏幕坐标
|
|
|
CPoint m_clipImgFirstPtScreen;
|
|
|
CPoint m_clipImgSecondPtScreen;
|
|
|
bool m_haveValidFirstPt;
|
|
|
|
|
|
// 互斥句柄
|
|
|
HANDLE m_hMutex_ProcessData;
|
|
|
|
|
|
|
|
|
public:
|
|
|
CString m_GDALLoadImgPath; // GDALj加载图像路径
|
|
|
|
|
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
public:
|
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
|
afx_msg void OnPaint();
|
|
|
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
|
|
|
afx_msg void OnZoomInImg();
|
|
|
afx_msg void OnZoomOutImg();
|
|
|
afx_msg void OnZoomFitImg();
|
|
|
afx_msg void OnConcelTargetPlot();
|
|
|
afx_msg void OnSaveCurrentFrame();
|
|
|
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
|
|
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
|
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
|
|
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
|
|
|
virtual BOOL OnInitDialog();
|
|
|
afx_msg void OnClearMemory();
|
|
|
afx_msg void OnSaveImgToTiff();
|
|
|
afx_msg void OnTagText();
|
|
|
afx_msg void OnReviseShot();
|
|
|
afx_msg void OnTagTgtLocation();
|
|
|
afx_msg void OnReturnToPreTag();
|
|
|
afx_msg void OnFastLookupImgs();
|
|
|
afx_msg void OnTgtLocLead();
|
|
|
afx_msg void OnGeoCorrectAndShow();
|
|
|
afx_msg void OnDrawSqureOnImg();
|
|
|
afx_msg void OnOpenOneImg();
|
|
|
afx_msg void OnTgtloccalibrate();
|
|
|
afx_msg void OnViewDeltaLonLat();
|
|
|
afx_msg void OnGetTargetImg();
|
|
|
afx_msg void OnClipImg();
|
|
|
};
|