精度评估弹出框
This commit is contained in:
		
							parent
							
								
									82f6c5d3fc
								
							
						
					
					
						commit
						6306932b38
					
				@ -7,7 +7,7 @@ import numpy as np
 | 
				
			|||||||
from rscder.gui.actions import ActionManager
 | 
					from rscder.gui.actions import ActionManager
 | 
				
			||||||
from rscder.plugins.basic import BasicPlugin
 | 
					from rscder.plugins.basic import BasicPlugin
 | 
				
			||||||
from rscder.gui.layercombox import RasterLayerCombox,ResultLayercombox, ResultPointLayerCombox
 | 
					from rscder.gui.layercombox import RasterLayerCombox,ResultLayercombox, ResultPointLayerCombox
 | 
				
			||||||
from PyQt5.QtWidgets import QAction, QFileDialog, QDialog, QLabel, QHBoxLayout, QVBoxLayout, QPushButton,QDialogButtonBox
 | 
					from PyQt5.QtWidgets import QAction, QFileDialog, QDialog, QLabel, QHBoxLayout, QVBoxLayout, QPushButton,QDialogButtonBox,QWidget
 | 
				
			||||||
from PyQt5.QtGui import QIcon
 | 
					from PyQt5.QtGui import QIcon
 | 
				
			||||||
from PyQt5.QtCore import Qt
 | 
					from PyQt5.QtCore import Qt
 | 
				
			||||||
from osgeo import gdal
 | 
					from osgeo import gdal
 | 
				
			||||||
@ -169,9 +169,35 @@ class EvaluationPlugin(BasicPlugin):
 | 
				
			|||||||
            ''')
 | 
					            ''')
 | 
				
			||||||
            f.flush()
 | 
					            f.flush()
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        os.system(f'c:/windows/notepad.exe "{result_path}"')
 | 
					        txt=f'''
 | 
				
			||||||
 | 
					            预测结果:{layer.path}\n
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.send_message.emit('精度评估完成')
 | 
					            真值:   {gt}\n
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            混淆矩阵结果:\n
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                 真实值 | 变化 |  未变化
 | 
				
			||||||
 | 
					            预测值
 | 
				
			||||||
 | 
					            变化       {cfm[1,1]}\t, {cfm[1,0]}
 | 
				
			||||||
 | 
					            未变化     {cfm[0,1]}\t, {cfm[0,0]}
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            归一化混淆矩阵:
 | 
				
			||||||
 | 
					                 真实值 | 变化 |  未变化
 | 
				
			||||||
 | 
					            预测值
 | 
				
			||||||
 | 
					            变化       {cfm[1,1]/np.sum(cfm)}\t, {cfm[1,0]/np.sum(cfm)}
 | 
				
			||||||
 | 
					            未变化     {cfm[0,1]/np.sum(cfm)}\t, {cfm[0,0]/np.sum(cfm)}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            OA:  {(cfm[1,1] + cfm[0,0])/np.sum(cfm)}
 | 
				
			||||||
 | 
					            F1:  {cfm[1,1] / (np.sum(cfm[1,:]) + np.sum(cfm[:,1]) - cfm[1,1])}
 | 
				
			||||||
 | 
					            Kappa: {kappa(cfm)}
 | 
				
			||||||
 | 
					            '''
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        self.msgbox = Win(txt)
 | 
				
			||||||
 | 
					        self.msgbox.show()
 | 
				
			||||||
 | 
					        # os.system(f'c:/windows/notepad.exe "{result_path}"')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # self.send_message.emit('精度评估完成')
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def show_dialog(self):
 | 
					    def show_dialog(self):
 | 
				
			||||||
        dialog = EvalutationDialog(self.mainwindow)
 | 
					        dialog = EvalutationDialog(self.mainwindow)
 | 
				
			||||||
@ -184,3 +210,11 @@ class EvaluationPlugin(BasicPlugin):
 | 
				
			|||||||
            t = Thread(target=self.run_alg, args=(layer, dialog.gt_file))
 | 
					            t = Thread(target=self.run_alg, args=(layer, dialog.gt_file))
 | 
				
			||||||
            t.start()
 | 
					            t.start()
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					from .window import Ui_Form
 | 
				
			||||||
 | 
					class Win(QWidget,Ui_Form):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self,txt):
 | 
				
			||||||
 | 
					        super().__init__()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.setupUi(self)
 | 
				
			||||||
 | 
					        self.label.setText(txt)
 | 
				
			||||||
							
								
								
									
										53
									
								
								plugins/evaluation/window.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								plugins/evaluation/window.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Form implementation generated from reading ui file 'c:\Users\dong\Desktop\111\test\untitled.ui'
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Created by: PyQt5 UI code generator 5.15.7
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# WARNING: Any manual changes made to this file will be lost when pyuic5 is
 | 
				
			||||||
 | 
					# run again.  Do not edit this file unless you know what you are doing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from PyQt5 import QtCore, QtGui, QtWidgets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Ui_Form(object):
 | 
				
			||||||
 | 
					    def setupUi(self, Form):
 | 
				
			||||||
 | 
					        Form.setObjectName("Form")
 | 
				
			||||||
 | 
					        Form.resize(604, 513)
 | 
				
			||||||
 | 
					        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
 | 
				
			||||||
 | 
					        sizePolicy.setHorizontalStretch(0)
 | 
				
			||||||
 | 
					        sizePolicy.setVerticalStretch(0)
 | 
				
			||||||
 | 
					        sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
 | 
				
			||||||
 | 
					        Form.setSizePolicy(sizePolicy)
 | 
				
			||||||
 | 
					        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(Form)
 | 
				
			||||||
 | 
					        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
 | 
				
			||||||
 | 
					        self.scrollArea = QtWidgets.QScrollArea(Form)
 | 
				
			||||||
 | 
					        self.scrollArea.setWidgetResizable(True)
 | 
				
			||||||
 | 
					        self.scrollArea.setObjectName("scrollArea")
 | 
				
			||||||
 | 
					        self.scrollAreaWidgetContents = QtWidgets.QWidget()
 | 
				
			||||||
 | 
					        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 580, 489))
 | 
				
			||||||
 | 
					        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
 | 
				
			||||||
 | 
					        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.scrollAreaWidgetContents)
 | 
				
			||||||
 | 
					        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
 | 
				
			||||||
 | 
					        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
 | 
				
			||||||
 | 
					        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
 | 
				
			||||||
 | 
					        self.label = QtWidgets.QLabel(self.scrollAreaWidgetContents)
 | 
				
			||||||
 | 
					        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
 | 
				
			||||||
 | 
					        sizePolicy.setHorizontalStretch(0)
 | 
				
			||||||
 | 
					        sizePolicy.setVerticalStretch(0)
 | 
				
			||||||
 | 
					        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
 | 
				
			||||||
 | 
					        self.label.setSizePolicy(sizePolicy)
 | 
				
			||||||
 | 
					        self.label.setObjectName("label")
 | 
				
			||||||
 | 
					        self.horizontalLayout_2.addWidget(self.label)
 | 
				
			||||||
 | 
					        self.horizontalLayout_4.addLayout(self.horizontalLayout_2)
 | 
				
			||||||
 | 
					        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
 | 
				
			||||||
 | 
					        self.horizontalLayout_3.addWidget(self.scrollArea)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.retranslateUi(Form)
 | 
				
			||||||
 | 
					        QtCore.QMetaObject.connectSlotsByName(Form)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def retranslateUi(self, Form):
 | 
				
			||||||
 | 
					        _translate = QtCore.QCoreApplication.translate
 | 
				
			||||||
 | 
					        Form.setWindowTitle(_translate("Form", "Form"))
 | 
				
			||||||
 | 
					        self.label.setText(_translate("Form", "TextLabel"))
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user