Programa para recortar fotos por el contorno

😺 Programa para recortar fotos por el contorno

💪 Opencv extraer imagen dentro del contorno

¿Estás listo para empezar a construir tu primer motor de búsqueda de imágenes? ¡No tan rápido! Primero vamos a repasar algunas manipulaciones y procesamientos básicos de imágenes que te serán útiles a lo largo de tu viaje como buscador de imágenes. Si ya eres un gurú del procesamiento de imágenes, este artículo te parecerá bastante aburrido, pero léelo de todos modos: puede que aprendas un par de trucos.

Para esta introducción al procesamiento básico de imágenes, voy a asumir que tienes conocimientos básicos de cómo crear y ejecutar scripts en Python. También voy a asumir que tienes OpenCV instalado. Si necesitas ayuda para instalar OpenCV, consulta las guías de inicio rápido en el sitio web de OpenCV.

Sólo cargar y mostrar una imagen no es muy interesante. Vamos a cambiar el tamaño de esta imagen y hacerla mucho más pequeña. Podemos examinar las dimensiones de la imagen utilizando el atributo shape de la imagen, ya que la imagen es un array NumPy después de todo:

Al ejecutar este código, vemos que (388, 647, 3) sale en nuestro terminal. Esto significa que la imagen tiene 388 filas, 647 columnas y 3 canales (los componentes RGB). Cuando escribimos matrices, es común escribirlas en la forma (# de filas x # de columnas) – que es la misma forma en que se especifica el tamaño de la matriz en NumPy.

✴ Opencv recortar imagen

La imagen consiste en una retina circular sobre un fondo negro. Con OpenCV he conseguido obtener un contorno que rodea toda la retina circular. Lo que necesito es recortar la retina circular del fondo negro.

READ  Tribunal de justicia dibujo

No está claro en tu pregunta si quieres recortar realmente la información que está definida dentro del contorno o enmascarar la información que no es relevante para el contorno elegido. Voy a explorar qué hacer en ambas situaciones.

Asumiendo que ejecutó cv2.findContours en su imagen, habrá recibido una estructura que lista todos los contornos disponibles en su imagen. También estoy asumiendo que usted sabe el índice del contorno que se utilizó para rodear el objeto que desea. Asumiendo que esto está almacenado en idx, primero use cv2.drawContours para dibujar una versión rellena de este contorno en una imagen en blanco, luego use esta imagen para indexar en su imagen para extraer el objeto. Esta lógica enmascara cualquier información irrelevante y sólo retiene lo que es importante – que se define dentro del contorno que ha seleccionado. El código para hacer esto sería algo como lo siguiente, asumiendo que su imagen es una imagen en escala de grises almacenada en img:

🐸 Recortar rectángulo opencv python

Estoy trabajando con imágenes de fondo de ojo de la retina. La imagen consiste en una retina circular sobre un fondo negro. Con OpenCV he conseguido obtener un contorno que rodea toda la retina circular. Lo que necesito es recortar la retina circular del fondo negro.

No está claro en tu pregunta si quieres recortar realmente la información que está definida dentro del contorno o enmascarar la información que no es relevante para el contorno elegido. Voy a explorar qué hacer en ambas situaciones.

Asumiendo que ejecutó cv2.findContours en su imagen, habrá recibido una estructura que lista todos los contornos disponibles en su imagen. También estoy asumiendo que usted sabe el índice del contorno que se utilizó para rodear el objeto que desea. Asumiendo que esto está almacenado en idx, primero use cv2.drawContours para dibujar una versión rellena de este contorno en una imagen en blanco, luego use esta imagen para indexar en su imagen para extraer el objeto. Esta lógica enmascara cualquier información irrelevante y sólo retiene lo que es importante – que se define dentro del contorno que ha seleccionado. El código para hacer esto sería algo como lo siguiente, asumiendo que su imagen es una imagen en escala de grises almacenada en img:

READ  Diseño de tarjetas de presentacion gratis para descargar

🤜 Recorte de contornos opencv

Por ejemplo, en una aplicación de detección de rostros, podemos querer recortar la cara de una imagen. Y si estuviéramos desarrollando un script en Python para reconocer perros en imágenes, podríamos querer recortar el perro de la imagen una vez que lo hayamos encontrado.

El corte startY:endY proporciona nuestras filas (ya que el eje y es nuestro número de filas) mientras que startX:endX proporciona nuestras columnas (ya que el eje x es el número de columnas) en la imagen. Tómate un segundo para convencerte de que la afirmación anterior es cierta.

Hoy sólo tenemos que revisar un único script de Python, opencv_crop.py, que cargará la imagen de entrada adrian.png desde el disco y luego recortará la cara y el cuerpo de la imagen utilizando el corte de matrices de NumPy.

Sólo necesitamos un argumento en la línea de comandos, –image, que es la ruta de la imagen de entrada que deseamos recortar. Para este ejemplo, vamos a cambiar por defecto el parámetro –image al archivo adrian.png en el directorio de nuestro proyecto.

Normalmente aplicaríamos técnicas de detección de objetos para detectar mi cara y mi cuerpo en la imagen. Sin embargo, como todavía estamos relativamente al principio de nuestro curso de formación de OpenCV, utilizaremos nuestro conocimiento a priori de la imagen y suministraremos manualmente los cortes de la matriz NumPy donde residen el cuerpo y la cara.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.Más información
Privacidad