[ Foro de Python ]

AYUDA CODIGO PYTHON

14-Feb-2022 18:24
Invitado (PABLO)
0 Respuestas

Tengo un problema con mi codigo, puesto que al ejecutar la primera parte se me abre una ventana que me permite seleccionar la imagen, de ahi obtengo la direccion y el nombre del archivo que utilizare despues. Pero, solo me ejecuta la primera parte y no me deja ejecutar el resto. Aqui adjunto la primera parte, quiero utilizar esa direccion y el nombre para seleccionar imagenes con la API de Google Vision.

import io, os
from google.cloud import vision
from geopy.geocoders import GeoNames
import pandas as pd
import metadata_parser
import json
#Obtencion coordenadas...Geoname
from geopy.geocoders import Nominatim
#abrir imagenes y obtener url
from tkinter import *  
from PIL import Image, ImageTk
from tkinter import filedialog

######################################################################
class SelectorImagenes:

   def __init__(self, master): #self metodo de instancia y master para referenciar a la ventana padre
       self.master = master

       self.inicializar_gui()

   def inicializar_gui(self):
       btn_seleccionar_imagen = Button(self.master, text='Seleccionar image...', command=self.seleccionar_imagen)
       btn_seleccionar_imagen.grid(row=0, columnspan=4)

   def seleccionar_imagen(self):
       archivo=filedialog.askopenfilename(filetypes=[('Archivos de imagen', '*.jpg')]) #archivos jpg podría abrir
       print(archivo)
       #verificamos usuario ha seleccionado algo                
       if archivo is not None:
           imagen= Image.open(archivo)
           print(archivo)
           nombre=os.path.basename(archivo)
           print(nombre)
           #redimensionamos
           imagen= imagen.resize((256,256), Image.ANTIALIAS)
           #Cargamos imagen
           imagen= ImageTk.PhotoImage(imagen)
           #creamos in label
           lbl_imagen=Label(self.master, image=imagen)
           lbl_imagen.image=imagen
           lbl_imagen.grid(row=2)
           return nombre, archivo
                                                           
def main():
   master = Tk()
   master.title('Selector Imagenes')
   master.geometry('550x550')
   master.resizable(width=True, height=True)

   ventana=SelectorImagenes(master)
   master.mainloop()

if __name__ == "__main__":
   main()
quit()
##############################################################################

# calling the Nominatim tool
loc = Nominatim(user_agent="GetLoc")

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r'tfgq33961014a7a01e9b80.json'
client = vision.ImageAnnotatorClient()
file_name= nombre #nombre archivo
image_path= archivo #ruta

#extraer info binaria
with io.open(image_path, 'rb') as image_file:
   #pasar la info binaria to a content object
   content = image_file.read()




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)