Está en la página 1de 6

UNIVERSIDAD MAYOR DE SAN SIMÓN

FACULTAD DE CIENCIAS Y TECNOLOGÍA


LICENCIATURA EN INGENIERÍA INFORMATICA

AGENTES INTELIGENTES

PROYECTO 2do PARCIAL

ELABORADO POR: Choque Loreño Gerson Egües.


Grageda Poma Carlos Alberto
Mamani Coca Johoni
DOCENTE: Msc. Lic. Montoya Burgos Yony Richard
PERIODO: II-2019
Cochabamba – Bolivia
Instrucciones de uso:
El proyecto esta hecho en Intellij Idea, pero la ejecución se hace vía comandos en cmd
ubicándonos en el directorio donde se encuentran los archivos.
“…\AgentesInteligentes\codigo\practica”

Hay 2 versiones, ambas tienen la misma forma de ejecutar


1.- Servidor.py - Cliente.py
2.- Servidor1.py – Cliente1.py

Probaremos con la versión 2, esta versión es la versión completa, las figuras básicas
(triangulo, cuadrado, circulo y estrella) y las figuras compuestas (circulo compuesto y
cuadrado compuesto)
Abriremos cuatro ventanas del cmd y nos ubicaremos donde se encuentra los códigos
fuentes, 1 para el servidor y 3 para los clientes (de manera obligatoria)
En el servidor analizamos el video leyendo imagen por imagen, comparando cuando una
imagen cambia a otra imagen, una vez detectada una imagen distinta la enviamos a un cliente
para que este se encargue de responder al servidor la respuesta deseada.

Nota:
para extraer el número de la imagen usamos la librería: “pytesseract” “pip install pytesseract”
de la imagen del video extraemos la parte superior izquierda donde se encuentra el número,
para analizarlo mejor, pero hay que tener en cuenta que las imágenes del video salen de esta
manera:
para esa estructura de imagen está diseñado el algoritmo, si la imagen cambiara y no hubiera
los bordes negros o si hubiera bordes más anchos se deberá modificar el servidor en la línea:
71 “img = img[0:150, 250:400]”

En el cliente ya está configurado para extraer la forma de la figura y el color que queramos en
la línea nro. 37, << self.unidades = self.getEstrella(imagen.copy(),'amarillo') >> si deseáramos
cambiar por cualquier otra figura o color, cambiamos solo el nombre del método, disponemos
de los siguientes métodos:
def getTriangulo(self,imagen,color):
return self.getFiguraGeometrica(imagen,color,3,0.03)

def getCuadrado(self,imagen,color):
return self.getFiguraGeometrica(imagen,color,4,0.03)

def getCirculo(self,imagen,color):
return self.getFiguraGeometrica(imagen,color,8,0.03) - self.get2Circulos(imagen,color)
- self.get2cuadrados(imagen,color)

def getEstrella(self,imagen,color):
return self.getFiguraGeometrica(imagen,color,10,0.03)

def get2cuadrados(self,imagen,color):
return self.getFiguraGeometrica(imagen,color,8,0.012)

def get2Circulos(self,imagen,color):
return self.getFiguraGeometrica(imagen,color,11,0.014)

los colores disponibles son para el parámetro en la línea 37 son: “rojo, azul, amarillo”

Por ejemplo, si deseáramos extraer todas las figuras triangulo independientemente del color
podemos hacer lo siguiente:
Self.unidades = self.getTriangulo(imagen.copy(),'azul') +
self.getTriangulo(imagen.copy(),'rojo') + self.getTriangulo(imagen.copy(),'amarillo')

Como ejecutamos:

En una ventana del cmd fijada como el servidor ejecutaremos el comando: >>py
Servidor1.py
En las ventanas cmd fijadas como clientes ejecutaremos el comando: >>py Cliente1.py
Luego en la ventana del servidor introduciremos el comando “iniciar” y empezara la ejecución
La forma en que el servidor selecciona a los clientes es aleatoria pudiendo un solo cliente
procesaras las distintas imágenes.

Nota:
Existen casos en que las figuras compuestas de acuerdo a su tamaño varían los vértices, es
decir al ejecutar la función: cv2.approxPolyDP(…..) para la misma figura compuesta pero de
distinto grosor/altura nos dará un resultado diferente, lo cual generara resultados erróneos
pudiendo afectar a la figura simple “circulo” ya que círculo en esta versión lo calculamos de la
siguiente manera:
return self.getFiguraGeometrica(imagen,color,8,0.03) - self.get2Circulos(imagen,color) -
self.get2cuadrados(imagen,color)
par tal caso solo usar la versión 1: Servidor.py - Cliente.py, el cual solo detectara figuras
simples (triangulo, cuadrado, circulo y estrella) sin ningún problema.

Si queremos consultar otra figura u otro color, modificamos en ambos casos el código del
cliente en la línea 37, y en las 4 ventanas cmd paralizamos la ejecución del programa (ctrl + z
+ enter) y compilamos nuevamente el servidor y los 3 clientes

El servidor empezará con un conteo, una vez terminado el conteo nos dará un resultado como
el siguiente:”>> total figuras: 6” que sería el número total de figuras de un tipo encontrado.
En los clientes también dará un resultado. El nombre de la imagen que trato más el número
de figuras de un tipo que encontró.

También podría gustarte