<jupyter_start><jupyter_text>OpenCV OpenCV (Open Source Computer Vision) es una librería de programación de código abierto dirigida principalmente a la visión por computador en tiempo real.  Las áreas de aplicación de OpenCV incluyen:Odometría visual, Sistema de reconocimiento facial, Reconocimiento de gestos, La interacción hombre-ordenador (HCI), Robótica móvil, Comprensión del movimiento, Identificación del objeto, Segmentación y reconocimiento, Visión estereoscópica: percepción de profundidad desde 2 cámaras, Estructura de movimiento (SFM), Rastreo de movimiento, Realidad aumentada, Aprendizaje del árbol de decisiones, Algoritmo de maximización de expectativas, Algoritmo de vecino más cercano k, Clasificador Bayes, Redes neuronales artificiales, Soporte de máquinas vectoriales, Redes neuronales profundas  Instalación del paquetepip install opencv-python<jupyter_code>import cv2
import numpy as np<jupyter_output><empty_output><jupyter_text>Obteniendo ancho y alto de la imagen<jupyter_code>imagen = cv2.imread('../figs/Logo.png')<jupyter_output><empty_output><jupyter_text>Escalando una imagen<jupyter_code>imagenSalida = cv2.resize(imagen,(300,400), interpolation=cv2.INTER_CUBIC)
#cv2.imshow('Imagen original',imagen)
#cv2.waitKey(0)
#cv2.destroyAllWindows()

#cv2.imshow('Imagen de salida',imagenSalida)
#cv2.waitKey(0)
#cv2.destroyAllWindows()<jupyter_output><empty_output><jupyter_text>Escribiendo la imagen de salida<jupyter_code>cv2.imwrite('../figs/Logo_resize.png', imagenSalida)<jupyter_output><empty_output><jupyter_text>Rotación<jupyter_code># Rotación
imagenResize = cv2.imread('../figs/Logo_resize.png')
ancho = imagenResize.shape[1] #columnas
alto = imagenResize.shape[0] # filas
rotacion = cv2.getRotationMatrix2D((ancho//2,alto//2),180,1)
imagenSalida = cv2.warpAffine(imagenResize,rotacion,(ancho,alto))<jupyter_output><empty_output><jupyter_text>Mostrando imagen de entrada y salida<jupyter_code>#cv2.imshow('Imagen original',imagenResize)
#cv2.waitKey(0)
#cv2.destroyAllWindows()
#cv2.imshow('Imagen con rotación',imagenSalida)
cv2.imwrite('../figs/Logo_rotacion.png', imagenSalida)
#cv2.waitKey(0)
#cv2.destroyAllWindows()<jupyter_output><empty_output><jupyter_text>Detectando círculos y sus centroides<jupyter_code>t2 = cv2.imread('../figs/Logo_resize.png')
thresh = cv2.cvtColor(t2, cv2.COLOR_BGR2GRAY)
thresh = cv2.adaptiveThreshold(thresh, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 101, 19)
count, labels, stats, centroids = cv2.connectedComponentsWithStats(thresh)
for i in range(2,count):
    t2 = cv2.circle(t2, (int(centroids[i,0]), int(centroids[i,1])), 0, (0, 255, 0, 0), 1)<jupyter_output><empty_output><jupyter_text>Mostrando centroides de circulos<jupyter_code>#cv2.imshow('circles', thresh)

#cv2.imshow('centers', t2)
cv2.imwrite('../figs/Logo_centroides.png', t2)
#cv2.waitKey(0)
#cv2.destroyAllWindows()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1175456739055498, 'fraction_numerical': 0.027921406411582212, 'mean_word_length': 8.705685618729097, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '314932', 'license': 'MIT', 'n_tokens_mistral': 1158, 'n_tokens_neox': 1134, 'n_words': 206, 'path': 'notebooks/016_OpenCV_obteniendo_centroides_de_circulos.ipynb', 'repo_name': 'AltamarMx/mas20problemas', 'size': '2901'}