agrobot_base/Treinamento/models/ruas/pointRecognize.py

48 lines
1.6 KiB
Python
Raw Normal View History

2024-02-19 13:16:40 +00:00
import json
import numpy as np
import matplotlib.pyplot as plt
# Função para ler dados de um arquivo JSON
def ler_dados_json(nome_do_arquivo):
with open(nome_do_arquivo, 'r') as arquivo:
dados = json.load(arquivo)
return dados
# Usando a função para carregar os dados do arquivo JSON
data = ler_dados_json('contours_data.json')
# Inicializando uma variável para armazenar o contorno da classe "rua", caso exista
contorno_rua = None
# Iterando pelos objetos no JSON para encontrar a classe "rua"
for item in data:
if item["Classe"] == "rua":
contorno_rua = item["Contornos"]
break # Interrompe o loop se a classe "rua" for encontrada
# Verifica se um contorno foi encontrado
if contorno_rua is not None:
# Converte os pontos para uma estrutura que facilita as comparações
points = np.array(contorno_rua)
# Plotando os pontos e a linha que os conecta
plt.figure(figsize=(10, 10))
plt.plot(points[:, 0], points[:, 1], '-o', markersize=5, linewidth=2)
# Configurando os limites do gráfico para melhor visualização
plt.xlim(points[:, 0].min() - 10, points[:, 0].max() + 10)
plt.ylim(points[:, 1].min() - 10, points[:, 1].max() + 10)
# Invertendo o eixo Y para que a origem (0,0) fique no canto inferior esquerdo
plt.gca().invert_yaxis()
# Adicionando título e labels aos eixos
plt.title('Figura formada pelo contorno da classe "rua"')
plt.xlabel('Eixo X')
plt.ylabel('Eixo Y')
plt.grid(True)
plt.show()
else:
print("Não foi encontrado um contorno para a classe 'rua'.")