[ Foro de Python ]
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.)