def __init__(self, pestannas, idioma): """ Constructor de la clase MediadorPestannas se encargara de inicializar los objetos pasados al constructor y tambien de inicializar las variables y objetos necesarios en el constructor. @param pestannas: Instancia de la clase que la crea. """ self.idioma = idioma self.pestannas = pestannas if self.idioma == "ESP": self.dic = Diccionario() else: self.dic = DiccionarioING() self.fachada_botones_and_layaout = FachadaBotonesAndLayaout( self.pestannas, self.dic) # self.estad = Estadistica() # self.escribeCSV = DatosToCsv() # self.escribeXML = ConfiguracionToXML() self.borrar = False self.fachada_entrada_salida = FachadaEntradaSalida(self, self.idioma) self.inicializa_msg()
def __init__(self, parent=None): """ Constructor de la clase panel de pestannas que comtendra el panel de pestannas e inicializara luego los compoenentes necesarios tanto la intancia del padre que lo contine para poder comunicarse con el. @param parent: padre que llama al panel de pestannas """ #------Creamos los componentes ------------------------- super(PanelDePestannas, self).__init__(parent) self.ventana = parent self.idioma = self.ventana.idioma self.mediador_pestannas = MediadorPestannas(self, self.idioma) self.inicia_paneles() self.tab_1_ui() self.tab_2_ui() if self.idioma == "ESP": self.dic = Diccionario() else: self.dic = DiccionarioING() self.row_actual = -1 self.nombres = {} self.nombres[self.dic.docu1] = self.dic.tab self.nombres[self.dic.docu2] = self.dic.sal_estad self.nombres[self.dic.docu3] = self.dic.sal_lin self.nombres[self.dic.docu4] = self.dic.origi self.nombres[self.dic.docu5] = self.dic.pintada
def __init__(self, ventana, idioma): """ Constructor de la clase ventana que nos proporciona las inicializaciones de variables y de objetos que vana a ser encesarios para su gestion e implementacion de los metodos que va a contener la ventana. @param ventana: instancia de la clase que crea la ventana. """ self.idioma = idioma if self.idioma == "ESP": self.dic = Diccionario() else: self.dic = DiccionarioING() self.ventana = ventana self.ventana.ax = self.ventana.fig.add_subplot(111) self.procesado = ProcesadoDeImagen() self.procesado_de_lineas = ProcesadoDeLineas() self.img = self.procesado.leer_imagen(self.ventana.path) self.ventana.ax = self.ventana.fig.add_subplot(111) self.ventana.ax.set_xlim([0, self.img.shape[1]]) self.ventana.ax.set_ylim([self.img.shape[0], 0]) self.ventana.ax.imshow(self.img, interpolation=self.dic.md_v_ori) if os.name == 'nt': self.ref_numeros = self.procesado.obtener_numeros(self.img) else: self.ref_numeros = 100 self.color = [] self.ventana.pestannas.button.setEnabled(False) self.ventana.pestannas.button_fijar.setEnabled(False) self.terminar = False self.detectado = True self.automatic_mode = ProcesadoAutomatico()
def leer_imagen(self, path_img): """ Metodo Para leer una imagen a traves de scikit-Image (skimage) dandole el path de la imagen. @param path_img: camino hasta la imagen. @retrun Img: imagen leida. """ self.dic = Diccionario() img = io.imread(path_img.replace('\\', '/')) return gray2rgb(img)
def __init__(self, mediador, idioma): """ Constructor de la clase FachadaEntradaSalida que inicializa y prepara todos los objetos que tendremos que usar mas adelante en la clase. """ self.idioma = idioma self.mediador = mediador self.escribeCSV = DatosToCsv() if self.idioma == "ESP": self.dic = Diccionario() else: self.dic = DiccionarioING() self.conf_to_xml = ConfiguracionToXML() self.estad = Estadistica()
def __init__(self, variables, dir_to_guardar): """ Constructor de la clase de los informes. que se encargara de inicializar las variables necesarias. @param variables: valores a sustituir en la plantilla @param dir_to_guardar: direccion donde guardar la tabal latex generada. """ self.dir_to_guardar = dir_to_guardar.replace('\\', '/') self.dir_to_guardar += '/' self.variables = variables self.path = os.getcwd() self.path += '\\' self.dic = Diccionario() template = self.cargar_plantilla() self.sustituir(self.variables, template)
def guardar(self, path, nombres, repe, lon, dire, cuadrado): """ Metodo que generara el xml de configuracion con los nombres de los generables. @param path: ruta donde guardar el fichero de configuracion. """ self.dic = Diccionario() proyect = ET.Element(self.dic.proyec) ET.SubElement(proyect, self.dic.docu, repeti=str(repe), long=str(lon), direccion=str(dire), xmin=str(cuadrado[1]), ymin=str(cuadrado[3])) ET.SubElement(proyect, self.dic.docu1, name=self.dic.tex, path=nombres[self.dic.docu1]) ET.SubElement(proyect, self.dic.docu2, name=self.dic.csv, path=nombres[self.dic.docu2]) ET.SubElement(proyect, self.dic.docu3, name=self.dic.csv, path=nombres[self.dic.docu3]) ET.SubElement(proyect, self.dic.docu4, name=self.dic.jpg1, path=nombres[self.dic.docu4]) ET.SubElement(proyect, self.dic.docu5, name=self.dic.jpg2, path=nombres[self.dic.docu5]) tree = ET.ElementTree(proyect) tree.write(path + self.dic.pro_xml, encoding=self.dic.utf, xml_declaration=True)
def leer_xml(self, path): """ Metodo que sirve para leer un documento xml de configuracion y abrir un proyecto existente precargarndo lso resultados anteriores. @param path: ruta donde leer el fichero de configuracion. """ self.dic = Diccionario() tree = ET2.parse(path + self.dic.pro_xml) root = tree.getroot() dicion = {} i = 0 for child in root: if i == 0: repe = child.attrib[self.dic.repeti] long = child.attrib[self.dic.long] dire = child.attrib[self.dic.direccion] xmin = child.attrib[self.dic.xmin] ymin = child.attrib[self.dic.ymin] i = i + 1 else: dicion[child.tag] = child.attrib[self.dic.path] return dicion, repe, long, dire, xmin, ymin
def guardar(self, path, lista): """ Metodo que permitira generar los scv de datos de las lineas uno con sus estadisticos y otro con la longitud y el angulo de cada recta o segmento. @param path: Camino donde guardar los ficheros generados. @param lista: v: lista de lineas en vertical. h: lista de lineas en horizontal. md: lista de lineas en diagonal md. dm: lista de lineas en diagonal dm. st_v: estadisticas de lineas en vertical. st_h: estadisticas de lineas en horizontal. st_md: estadisticas de lineas en diagonal md. st_dm: estadisticas de lineas en diagonal dm. st_tot: estadisticas totales de lineas. """ self.dic=Diccionario() csvsalida_lin = open(path.replace('\\', '/') + self.dic.sal_lin, 'w', newline='') salida = csv.writer(csvsalida_lin, escapechar=' ', quoting=csv.QUOTE_NONE, delimiter=';') salida.writerow(self.dic.cabecera_csv_lineas) if len(lista[0]) > 0: salida.writerows(lista[0]) if len(lista[1]) > 0: salida.writerows(lista[1]) if len(lista[2]) > 0: salida.writerows(lista[2]) if len(lista[3]) > 0: salida.writerows(lista[3]) del salida csvsalida_lin.close() if len(lista[4])>0: desv_v=float(lista[4][3]) else: desv_v=0 if len(lista[5])>0: num_h=float(lista[5][1]) med_h=float(lista[5][2]) desv_h=float(lista[5][3]) else: num_h,med_h,desv_h=0,0,0 if len(lista[6])>0: num_md=float(lista[6][1]) else: num_md=0 if len(lista[7])>0: desv_dm=float(lista[7][3]) else: desv_dm=0 if len(lista[8])>0: num_tot=float(lista[8][1]) med_tot=float(lista[8][2]) desv_tot=float(lista[8][3]) else: num_tot,med_tot,desv_tot=0,0,0 f1=round((0.11364*num_h)-(0.03017*num_md)-(0.00169*desv_dm)-(0.01485*med_tot)+(0.00958*desv_tot)-(-0.00468*desv_v)+(0.00454*med_h)+(0.00203*num_tot)+0.06819,3) f2=round((-0.05361*num_h)+(0.09573*num_md)+(0.00730*desv_h)-(0.01340*med_tot)-(0.00922*desv_tot)+(0.01098*desv_v)+(0.00061*med_h)+(0.03253*num_tot)-0.42014,3) pt1="punto_x" pt2="punto_y" punto=[] punto.extend([pt1,f1,pt2,f2]) csvsalida_stat = open(path.replace('\\', '/') + self.dic.sal_estad, 'w', newline='') salida = csv.writer(csvsalida_stat, escapechar=' ', quoting=csv.QUOTE_NONE, delimiter=';') salida.writerow(self.dic.cabecera_csv_estad) salida.writerow(lista[4]) salida.writerow(lista[5]) salida.writerow(lista[6]) salida.writerow(lista[7]) salida.writerow(lista[8]) salida.writerow(punto) del salida csvsalida_stat.close()
def __init__(self,idioma_path, parent=None): """ Constructor de la clase ventana de inicio en el cual inicializaremos las variabel snecsarias para sus futuros usos. @param parent: padre que llama al panel de pestannas """ super(VentanaInicio, self).__init__(parent) self.idioma_path=idioma_path self.idioma=self.carga_idioma(self.idioma_path) if self.idioma=="ESP": self.dic=Diccionario() else: self.dic=DiccionarioING() self.resize(900, 700) logging.basicConfig(filename=self.dic.ini_log,level=logging.DEBUG) self.bandera=False self.inicializa_mensages() self.carga_acerca(self.dic) self.ventana=None self.setWindowTitle(self.dic.nombre_api) self.cont_cargar=0 self.abierto=0 self.open_file = QtWidgets.QAction(self.dic.ini_nuevo, self) self.open_file.setShortcut(self.dic.ini_o_nuevo) self.open_file.setStatusTip(self.dic.ini_p_abrir) self.open_file.triggered.connect(self.file_open) self.cargar_proye = QtWidgets.QAction(self.dic.ini_abrir_pro, self) self.cargar_proye.setShortcut(self.dic.ini_o_abrir_pro) self.cargar_proye.setStatusTip(self.dic.ini_p_abrir_pro) self.cargar_proye.triggered.connect(self.file_cargar) self.cerrar_all = QtWidgets.QAction(self.dic.ini_salir, self) self.cerrar_all.setShortcut(self.dic.ini_o_salir) self.cerrar_all.setStatusTip(self.dic.ini_p_salir) self.cerrar_all.triggered.connect(self.cerrar) self.save_file = QtWidgets.QAction(self.dic.ini_guardar, self) self.save_file.setShortcut(self.dic.ini_o_guardar) self.save_file.setStatusTip(self.dic.ini_p_guardar) self.save_file.triggered.connect(self.file_save) self.save_file.setDisabled(True) self.help_f = QtWidgets.QAction(self.dic.ini_acerca, self) self.help_f.setShortcut(QtCore.Qt.Key_F2) self.help_f.setStatusTip(self.dic.ini_o_ayuda) self.help_f.triggered.connect(self.acerca_de) self.ayuda_f = QtWidgets.QAction(self.dic.ini_ayuda, self) self.ayuda_f.setShortcut(QtCore.Qt.Key_F1) self.ayuda_f.setStatusTip(self.dic.ini_o_ayuda) self.ayuda_f.triggered.connect(self.ayuda) self.statusBar() self.ingles = QtWidgets.QAction(self.dic.idioma, self) self.ingles.triggered.connect(self.guarda_ingles) self.espa = QtWidgets.QAction(self.dic.idioma_esp, self) self.espa.triggered.connect(self.guarda_espannol) self.help_f = QtWidgets.QAction(self.dic.ini_acerca, self) self.help_f.setShortcut(QtCore.Qt.Key_F2) self.help_f.setStatusTip(self.dic.ini_o_ayuda) self.help_f.triggered.connect(self.acerca_de) main_menu = self.menuBar() self.file_menu = main_menu.addMenu(self.dic.ini_archivo) self.help_menu = main_menu.addMenu(self.dic.ini_ayuda) self.conf_menu = main_menu.addMenu(self.dic.idioma_selec) self.conf_menu.addAction(self.ingles) self.conf_menu.addAction(self.espa) self.help_menu.addAction(self.help_f) self.help_menu.addAction(self.ayuda_f) self.file_menu.addAction(self.open_file) self.file_menu.addAction(self.cargar_proye) self.file_menu.addAction(self.save_file) self.file_menu.addAction(self.cerrar_all) self.styleChoice = QtWidgets.QLabel(self.dic.ini_msg, self) self.styleChoice.setAlignment(QtCore.Qt.AlignCenter) self.clickables(self.styleChoice).connect(self.file_open) self.styleChoice.setAlignment(QtCore.Qt.AlignCenter) self.styleChoice2 = QtWidgets.QLabel(self.dic.ini_msg3, self) self.styleChoice2.setAlignment(QtCore.Qt.AlignCenter) self.clickables(self.styleChoice2).connect(self.file_cargar) self.styleChoice2.setAlignment(QtCore.Qt.AlignCenter) self.styleChoice2.setStyleSheet(self.dic.ini_color) font = QtGui.QFont(self.dic.ini_time, 35, QtGui.QFont.Bold, True) self.styleChoice2.setFont(font) self.styleChoice3 = QtWidgets.QLabel(self.dic.ini_msg4, self) self.styleChoice3.setAlignment(QtCore.Qt.AlignCenter) self.styleChoice3.setAlignment(QtCore.Qt.AlignCenter) self.styleChoice3.setStyleSheet(self.dic.ini_color) font = QtGui.QFont(self.dic.ini_time, 35, QtGui.QFont.Bold, True) self.styleChoice3.setFont(font) self.styleChoice4 = QtWidgets.QLabel(self.dic.ini_msg2, self) self.styleChoice4.setAlignment(QtCore.Qt.AlignCenter) self.styleChoice4.setStyleSheet(self.dic.ini_color) font = QtGui.QFont(self.dic.ini_time, 35, QtGui.QFont.Bold, True) self.styleChoice4.setFont(font) self.styleChoice4.setAlignment(QtCore.Qt.AlignCenter) laout_principal = QtWidgets.QVBoxLayout() laout_principal.addWidget(self.styleChoice) laout_principal.addWidget(self.styleChoice4) laout_principal.addWidget(self.styleChoice2) laout_principal.addWidget(self.styleChoice3) laout_principal.setAlignment(QtCore.Qt.AlignCenter) self.styleChoice.setStyleSheet(self.dic.ini_color) font = QtGui.QFont(self.dic.ini_time, 35, QtGui.QFont.Bold, True) self.styleChoice.setFont(font) central_widget = QtWidgets.QWidget() central_widget.setLayout(laout_principal) self.setCentralWidget(central_widget)