27 de abril de 2023

         Dei continuidade ao código de reconhecimento de imagem, num primeiro momento adicionei um texto na própria imagem e brinquei com as coordenadas para entender melhor como funciona.


  Após, pensei em incrementar o código dando opções de escolha para o usuário que o levariam para imagens diferentes:
    Primeiramente utilizei um comando simples com o print e escolha numérica, que dependeria do que o usuário escreveria na caixa de texto:

import cv2

# Carregar a imagem em cores

img = cv2.imread('C:\\Users\\lajeado-lab\\Desktop\\Nova pasta\\image.jpg', cv2.IMREAD_COLOR)

#escreve texto na imagem

cv2.putText(img, "What do you choose? ", (80,255), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)

print ('what do you choose? ')

print ('1-blue')

print ('2-red')

opcao = int(input())

if opcao == 1:

    img = cv2.imread('C:\\Users\\lajeado-lab\\Desktop\\Nova pasta\\blue.jpg', cv2.IMREAD_COLOR)

if opcao == 2:

    img = cv2.imread('C:\\Users\\lajeado-lab\\Desktop\\Nova pasta\\red.jpg', cv2.IMREAD_COLOR)

# Verificar se a imagem foi carregada corretamente

if img is not None:

    # Mostrar a imagem

    cv2.imshow('Imagem', img)

    cv2.waitKey(0)

    cv2.destroyAllWindows()

  else:    

    print('Erro ao carregar a imagem.')

    Aqui há um pequeno erro de localização do comando print, para a escolha da cor, ele deveria ficar após o cv2.imshow('Imagem', img), dentro do if. Esse erro faz com que a primeira imagem que mostra as duas pílulas não apareça. O próximo código corrige este problema.
    Depois pensei que seria interessante se o usuário pudesse escolher clicando na pílula, então o novo código ficou assim:

import cv2

# Carregar a imagem em cores

img = cv2.imread('C:\\Users\\manus\\Desktop\\Teste\\image.jpg', cv2.IMREAD_COLOR)

cv2.putText(img, "What do you choose? ", (85,255), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255), 2)

# Verificar se a imagem foi carregada corretamente

if img is not None:

    # Mostrar a imagem

    cv2.imshow('Imagem', img)

    # Adicionar um evento de clique na imagem

    def on_click(event, x, y, flags, param):

        if event == cv2.EVENT_LBUTTONDOWN:

            # Obter a cor do pixel clicado

            b, g, r = img[y, x]

            if r > g and r > b:

                # Se o pixel for vermelho, mostrar a imagem 1

                img1 = cv2.imread('C:\\Users\\manus\\Desktop\\Teste\\red.jpg', cv2.IMREAD_COLOR)

                cv2.imshow('Imagem', img1)

            elif b > g and b > r:

                # Se o pixel for azul, mostrar a imagem 2

                img2 = cv2.imread('C:\\Users\\manus\\Desktop\\Teste\\blue.jpg', cv2.IMREAD_COLOR)

                cv2.imshow('Imagem', img2)

    # Definir a função de clique como o manipulador de eventos da janela

    cv2.setMouseCallback('Imagem', on_click)

    cv2.waitKey(0)

    cv2.destroyAllWindows()

   

else:    

    print('Erro ao carregar a imagem.')


O novo código permite que o programa defina se a cor que o usuário está selecionando na imagem é ou não a que leva para a próxima imagem.


Ao escolher a pílula vermelha, o Keanu Reeves fica feliz, porém, se escolher a pílula azul o Keanu Reeves fica triste.

Comentários

Postagens mais visitadas deste blog

15 de maio de 2023