机载高光谱图像边缘辐射校正并行处理系统设计(9)
时间:2017-03-02 22:53 来源:毕业论文 作者:毕业论文 点击:次
m_pHRCBand->OpenNewData(strFilePath); } else { // 建立波段对话框 m_pHRCBand = new CHRCBand; m_pHRCBand->m_strFilePath = strFilePath; m_pHRCBand->m_strFileTitle = strFileTitle; m_pHRCBand->Create(CHRCBand::IDD); m_pHRCBand->ShowWindow(SW_SHOW); } } 子菜单移动 主程序与子菜单的文件信息选项单独显示,当移动主程序是,子菜单跟随主菜单一起移动,使得界面更加友好。 主要实现: // 移动子对话框 CRect rcDlg; GetWindowRect(&rcDlg); CString strData; strData.Format(_T("%d,%d"), rcDlg.left, rcDlg.top); COPYDATASTRUCT data = {0}; data.dwData = (DWORD)this->GetSafeHwnd(); data.cbData = strData.GetLength(); data.lpData = strData.GetBuffer(strData.GetLength()); 图像显示 图像显示可根据选择的波段,查看灰度(一个波段)或彩色(三个波段)图像。 首先,选择需要查看的波段,根据灰度或彩色选择一个或三个波段。把之前打开的第2%小和第98%大的DN值记录下来,根据该波段的DN值生成数据,进行位图头设置、调色板设置、过滤、拉伸。由得到的数据显示,最后设定滚动条等信息。 主要实现代码: // 获取图像信息 BITMAP bitmap; GetObject(m_hBmp, sizeof(BITMAP), &bitmap); m_HRCImgHdr.set_samples(bitmap.bmWidth); m_HRCImgHdr.set_lines(bitmap.bmHeight); // 图像控件的位置 GetDlgItem(IDC_HRCIMG_IMG_PICTURE)->GetWindowRect(m_rcImg); ScreenToClient(&m_rcImg); CRect rect; GetClientRect(rect); int xpos = GetScrollPos(SB_HORZ); if (xpos != 0) ScrollWindow(xpos, 0); // 恢复窗口的水平滚动区域 int ypos = GetScrollPos(SB_VERT); if (ypos != 0) ScrollWindow(0, ypos); // 恢复窗口的垂直滚动区域 4.2 辐射校正模块的设计与实现 辐射校正模块为本系统核心功能。整体流程为:首先,保存待校正文件路径列表,打开数据选择对话框。进行判断,如记录选择的是那一块数据。然后设置校正的一些选项:是否并行、是否手动保存数据。最后,进行校正。校正分为两个部分,界面进度条,用于显示校正进度;矩匹配线程,专门用于计算。 辐射校正整体流程如图4-5所示: 图4-5 辐射校正整体流程4.2.1 选择数据界面实现 选择数据界面如图4-6所示 (责任编辑:qin) |