机载高光谱图像边缘辐射校正并行处理系统设计(9)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

机载高光谱图像边缘辐射校正并行处理系统设计(9)


            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)