添加项目文件。

This commit is contained in:
keyeslll 2023-02-22 11:56:10 +08:00
parent d51d52efba
commit 7ddd217123
8 changed files with 4300 additions and 0 deletions

22
NiirsLinux.sln Normal file
View File

@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33027.164
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NiirsLinux", "NiirsLinux\NiirsLinux.vcxproj", "{22B7E044-B017-466B-985E-D3FDF6435C2E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{22B7E044-B017-466B-985E-D3FDF6435C2E}.Release|x64.ActiveCfg = Release|x64
{22B7E044-B017-466B-985E-D3FDF6435C2E}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4D31A63B-64E0-4A37-A0E6-6AD47E2C0284}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{22B7E044-B017-466B-985E-D3FDF6435C2E}</ProjectGuid>
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">10.0.22000.0</WindowsTargetPlatformVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
<QtInstall>Qt5.11.2</QtInstall>
<QtModules>core;xml;gui;widgets;printsupport</QtModules>
<QtBuildConfig>release</QtBuildConfig>
</PropertyGroup>
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(QtMsBuild)\Qt.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<IncludePath>D:\qgis\osgeo4w\include;D:\qgis\osgeo4w\apps\Qt5\include;D:\OpenCV\opencv455\include;D:\OpenCV\opencv455\include\opencv2;D:\qgis\osgeo4w\apps\Qt5\include\QtXml;$(IncludePath)</IncludePath>
<LibraryPath>D:\qgis\osgeo4w\lib;D:\qgis\osgeo4w\apps\Qt5\lib;D:\OpenCV\opencv455\x64\vc16\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>opencv_core455.lib;opencv_imgcodecs455.lib;opencv_imgproc455.lib;gdal_i.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<ClCompile>
<OpenMPSupport>true</OpenMPSupport>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
<ClCompile>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="niirs.cpp" />
</ItemGroup>
<ItemGroup>
<QtMoc Include="niirs.h" />
</ItemGroup>
<ItemGroup>
<QtRcc Include="niirs.qrc" />
</ItemGroup>
<ItemGroup>
<QtUic Include="niirs.ui" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="x64\Release\uic\ui_niirs.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />
</ImportGroup>
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>qml;cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Form Files">
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
<Extensions>ui</Extensions>
</Filter>
<Filter Include="Translation Files">
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
<Extensions>ts</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="niirs.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtUic Include="niirs.ui">
<Filter>Form Files</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<QtRcc Include="niirs.qrc">
<Filter>Resource Files</Filter>
</QtRcc>
</ItemGroup>
<ItemGroup>
<QtMoc Include="niirs.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<ClInclude Include="x64\Release\uic\ui_niirs.h">
<Filter>Form Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

28
NiirsLinux/main.cpp Normal file
View File

@ -0,0 +1,28 @@
#include "niirs.h"
#include <QtWidgets/QApplication>
#include <QStyleFactory>
#include <QStyle>
int main(int argc, char *argv[])
{
QString xmlInterface = "";
for (int i = 0; i < argc; i++)
{
QString temp = QString::fromLocal8Bit(argv[i]);
if (temp == "--xml" && i + 1 < argc)
{
xmlInterface = argv[i + 1];
break;
}
}
QApplication a(argc, argv);
QStyle* style = QStyleFactory::create("Fusion");
a.setStyle(style);
NIIRS w;
w.setXmlInterface(xmlInterface);
w.show();
return a.exec();
}

3229
NiirsLinux/niirs.cpp Normal file

File diff suppressed because it is too large Load Diff

199
NiirsLinux/niirs.h Normal file
View File

@ -0,0 +1,199 @@
#pragma once
#include <QtWidgets/QMainWindow>
#include <QDebug>
#include <QDomDocument>
#include <QFile>
#include <QFileDialog>
#include <QMessageBox>
#include <QStack>
#include <QTextStream>
#include <QTime>
#include "ui_niirs.h"
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/types_c.h>
#include <opencv2/core/core.hpp>
#include <math.h>
#include <omp.h>
//#include <stdlib.h>
//#include <iostream>
#include "gdal_priv.h"
using namespace std;
struct ImgInfo
{
GDALDataType dataType; //标示数据类型
int bandCount; //数据波段数目
int xSize; //数据在x方向上的尺寸
int ySize; //数据在y方向上的尺寸
int xOffset; //x方向上的偏移
int yOffset; //y方向上的偏移
char projWkt[1024]; //数据的投影方式
double geoTransform[6]; //数据的仿射坐标
double noData; //数据的背景值
};
class NIIRS : public QMainWindow
{
Q_OBJECT
public:
NIIRS(QWidget* parent = Q_NULLPTR);
void setXmlInterface(QString strXmlInterface);
/* 计算NIIRS
* @return NIIRS */
double calculateNiirsScore();
//计算10个客观参数
void calculateObjectivePara();
//void calculateEvaluationImage();
double calculateRER();
/*
* @brief
* @param srcImgPath
* @param imgInfo tiff文件信息
* @return */
int getImageInfo(const char* srcImgPath, struct ImgInfo* imgInfo);
/*
* @brief tiff
* @param srcImgPath
* @param imgInfo tiff文件信息
* @param imgArray tiff数组
* @param bandIndex bandIndex=0,
* @return */
int readTiffFile(const char* srcImgPath, ImgInfo imgInfo, void* imgArray, int bandIndex);
void initTableWidget(int rowNum, int colNum);
void setTableWidgetValue(double val, int row, int col);
/*
* @brief
* @param path
* @param fileType
* @return absoluteFilePath, */
QStringList getAllFiles(QString path, QString fileType);
public slots:
void onRadioBtn_Visi();
void onRadioBtn_Infra();
void on_pbtOpenImg_clicked();
//void on_pbtOpenEdgeX_clicked();
//void on_pbtOpenEdgeY_clicked();
private:
Ui::NIIRSClass ui;
/* 计算噪声增益
* @param kernel MTFC所使用的滤波器
* @return MTFC_G噪声增益 */
double calculateMTFC_G(cv::Mat kernel);
////计算信噪比mean/StdDev
//double calculateSNR(cv::Mat img);
/* 计算数字图像亮度
* @return */
double calculateMeanStdDev(cv::Mat img);
////计算图像标准差方差
//float calculateStdDev(cv::Mat img);
//计算图像对比度
double calculateContrastRatio(cv::Mat img);
////计算信息熵
//double calculateEntropy(cv::Mat img);
/*
* @brief
* @param imgArray tiff数组
* @param maxVal tiff波段中的最大值
* @return */
double calculateTiffEntropy(unsigned short* bandBuf, int bufSize, int maxVal);
//计算相对边缘相应
// double calculateERx(cv::Mat img);
// double calculateERy(cv::Mat img);
//return pair.first:ER, pair.second:H
QPair<double, double> calculateERx(cv::Mat img);
QPair<double, double> calculateERy(cv::Mat img);
QPair<double, double> calculate_rer_h(cv::Mat img, cv::Point pointA, cv::Point pointB);
cv::Point2d calculateFootPoint(array<cv::Point, 3>& ps);
//float SFRCalculation(cv::Mat& ROI, double gamma);
//void de_Gamma(cv::Mat& Src, double gamma);
//std::vector<double> CentroidFind(cv::Mat& Src, std::vector<double>& y_shifts, double* CCoffset);
//void SLR(std::vector<double>& Cen_Shifts, std::vector<double>& y_shifts, double* a, double* b);
//void ReduceRows(double slope, int* ImgHeight);
//std::vector<double> OverSampling(cv::Mat& Src, double slope, double CCoffset, int height, int width, int* SamplingLen);
//std::vector<double> HammingWindows(std::vector<double>& deSampling, int SamplingLen);
//void DFT(std::vector<double>& data, int size);
//陡度
//基于sobel算子计算平均梯度
double gradient_Sobel(cv::Mat img);
//基于Laplacian算子拉普拉斯导数评价清晰度
double definition_Laplacian(cv::Mat img);
//四个方向的角二阶矩
void get_GLCM_0deg(cv::Mat& input, cv::Mat& dst);
void get_GLCM_90deg(cv::Mat& input, cv::Mat& dst);
void get_GLCM_45deg(cv::Mat& input, cv::Mat& dst);
void get_GLCM_135deg(cv::Mat& input, cv::Mat& dst);
//计算二阶矩的特征值
double calculateASM(cv::Mat& src);
//PIQE
double calculatePIQEScore(cv::Mat& img);
bool noticeDistCriterion(cv::Mat Block, int nSegments, int blockSize_1,
int windowSize, float blockImpairedThreshold, int blockSize);
cv::Mat segmentEdge(cv::Mat blockEdge, int nSegments, int blockSize_1, int windowSize);
float noiseCriterion(cv::Mat Block, int blockSize_1, float blockVar, float blockStdDev);
float centerSurDev(cv::Mat Block, int blockSize_1);
// 计算垂足的坐标array点、直线两端点
cv::Point calculate_foot_point(array<cv::Point, 3>& ps);
// 计算两点距离
float pointDistance(cv::Point pt1, cv::Point pt2);
//// 计算两直线交点
//cv::Point line_intersection(array<cv::Point, 2>& line1, array<cv::Point, 2>& line2);
//// 根据一条线的点pt、斜率k、另一条水平或垂直的直线的端点求交点
//cv::Point point_k_edge_intersection(cv::Point pt, double k, array<cv::Point, 2>& line);
//// 计算点到直线距离
//int calculate_distance(array<cv::Point, 3>& ps);
bool jpegTest = false;
//int mBandCount = 0;
QString mXmlInterface = "";
//QString mXmlImgPath = "/home/testdata/19data/VALID-ALIGACE/JB19-2_MSS_000811113_MMB04_001_01_001_003_L1/JB19-2_MSS_000811113_MMB04_001_01_001_003_L1.tiff";
QString mXmlImgPath = "";//D:\\A_testdata\\niirs_test\\data\\GF2_mask1024.tif
QString mXmlTopLeftX = "0";//311,336
QString mXmlTopLeftY = "0";//324,293
QString mXmlBottomRightX = "0";//335,348
QString mXmlBottomRightY = "0";//337,311
QString mXmlProductDir = "";
QString mResultXmlDir = "";
cv::Point mRerEdgePointA;
cv::Point mRerEdgePointB;
double imgLight = 0.0; //亮度
double imgStdDev = 0.0; //标准差
double imgContrastRadio = 0.0; //对比度
double imgEntropy = 0.0; //熵
double imgSNR = 0.0; //信噪比
double imgGradient = 0.0; //陡度
double imgDefinition = 0.0; //清晰度
double imgASM = 0.0; //角二阶矩
double imgPIQE = 0.0; //PIQE
double imgRER = 0.986; //相对边缘响应
};

4
NiirsLinux/niirs.qrc Normal file
View File

@ -0,0 +1,4 @@
<RCC>
<qresource prefix="NIIRS">
</qresource>
</RCC>

680
NiirsLinux/niirs.ui Normal file
View File

@ -0,0 +1,680 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>NIIRSClass</class>
<widget class="QMainWindow" name="NIIRSClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>780</width>
<height>520</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>780</width>
<height>520</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="windowTitle">
<string>NIIRS</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_3" rowstretch="0,0" columnstretch="1,1">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>客观参数计算</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="4">
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="5">
<layout class="QGridLayout" name="gridLayout_45">
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>左上角X坐标</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pbtOpenImg">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>浏览</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="lineEditLTx"/>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>左上角Y坐标</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEditLTy"/>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>待评价影像</string>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="lineEditRBx"/>
</item>
<item>
<widget class="QLabel" name="label_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>右下角Y坐标</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEditRBy"/>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>右下角X坐标</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_img"/>
</item>
</layout>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0" colspan="5">
<widget class="QTableWidget" name="tableWidget">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="pbtObjectivePara">
<property name="minimumSize">
<size>
<width>90</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>90</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>计算客观参数</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_42">
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_INFO">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_54">
<property name="text">
<string>异常信息:</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1" rowspan="2">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>340</width>
<height>16777215</height>
</size>
</property>
<property name="title">
<string>NIIRS计算</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="5" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout_69">
<item row="0" column="0">
<widget class="QLabel" name="label_97">
<property name="text">
<string>NIIRS等级计算结果:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_NIIRS">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pbtCalculate">
<property name="text">
<string>计算</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox_12">
<property name="title">
<string>调制传递函数补偿(MTFC)影像参数</string>
</property>
<layout class="QGridLayout" name="gridLayout_60">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_61">
<item row="0" column="0">
<widget class="QLabel" name="label_88">
<property name="text">
<string>噪 声 增 益G</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_MTFC_G">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="4" column="0">
<widget class="QGroupBox" name="groupBox_15">
<property name="title">
<string>信噪比(SNR)</string>
</property>
<layout class="QGridLayout" name="gridLayout_67">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_68">
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_SNR">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_95">
<property name="text">
<string>SNR</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="groupBox_13">
<property name="title">
<string>分辨率(GSD)</string>
</property>
<layout class="QGridLayout" name="gridLayout_65">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_66">
<item row="0" column="0">
<widget class="QLabel" name="label_91">
<property name="text">
<string>GSD_X</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_GSDX">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_92">
<property name="text">
<string>米</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_93">
<property name="text">
<string>GSD_Y</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_GSDY">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_94">
<property name="text">
<string>米</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox_14">
<property name="title">
<string>边缘响应及过冲</string>
</property>
<layout class="QGridLayout" name="gridLayout_70">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_71">
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_H">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_RER">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_100">
<property name="maximumSize">
<size>
<width>40</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>过冲H</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_98">
<property name="maximumSize">
<size>
<width>40</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>RER</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="4" column="1">
<widget class="QGroupBox" name="groupBox_11">
<property name="title">
<string>参数(PIQE)</string>
</property>
<layout class="QGridLayout" name="gridLayout_62">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_63">
<item row="0" column="0">
<widget class="QLabel" name="label_90">
<property name="text">
<string>PIQE</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_PIQE">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QRadioButton" name="radioVisible">
<property name="text">
<string>可见光数据</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioMidInfrared">
<property name="text">
<string>中红外数据</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioLonInfrared">
<property name="text">
<string>长波红外数据</string>
</property>
<attribute name="buttonGroup">
<string notr="true">buttonGroup</string>
</attribute>
</widget>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout_4">
<item row="1" column="0">
<widget class="QLabel" name="label_102">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>计算公式:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QTextEdit" name="textFormula">
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>150</height>
</size>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_6">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>波段选择:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBoxBand">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<tabstops>
<tabstop>lineEdit_img</tabstop>
<tabstop>pbtOpenImg</tabstop>
<tabstop>radioVisible</tabstop>
<tabstop>radioMidInfrared</tabstop>
<tabstop>textFormula</tabstop>
<tabstop>lineEdit_GSDX</tabstop>
<tabstop>lineEdit_GSDY</tabstop>
<tabstop>lineEdit_RER</tabstop>
<tabstop>lineEdit_H</tabstop>
<tabstop>lineEdit_MTFC_G</tabstop>
<tabstop>lineEdit_SNR</tabstop>
<tabstop>lineEdit_PIQE</tabstop>
<tabstop>lineEdit_NIIRS</tabstop>
<tabstop>pbtCalculate</tabstop>
<tabstop>lineEdit_INFO</tabstop>
</tabstops>
<resources/>
<connections/>
<buttongroups>
<buttongroup name="buttonGroup"/>
</buttongroups>
</ui>