Soy brasileño y no sé nada de programación, sus videos son los únicos que me hacen entender sobre el tema. ¡No puedo encontrar ningún otro tutorial en inglés o portugués, tan bueno como el suyo! Felicitaciones por lo trabajo
¡Gracias por tus videos!, creo que no hay tantos tan bien explicados. Dentro de los temas que mas me apasionan son la visión computacional, la inteligencia artificial y la realidad virtual.
Buen video. Tan solo unas apreciaciones que se pueden ver si mantenemos el ciclo for con los distintos métodos: # CASO 1: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_LIST: Primero se ha encontrado el circulo, luego los de las figuras interiores del cuadrado de la izquierda. Después el contorno interior del cuadrado de la izquierda y, posteriormente su borde exterior. Por último hace lo mismo pero en el cuadrado de la derecha. Figura interior, borde interior, borde externo # CASO 2: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_EXTERNAL: Primero dibuja el circulo, luego el cuadrado externo izquierdo y, finalmente el cuadrado externo derecho # CASO 3: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_CCOMP Primero se ha encontrado el circulo, luego los de las figuras interiores del cuadrado de la izquierda. Después el contorno exterior del cuadrado de la izquierda y, posteriormente su borde interior. Por último hace lo mismo pero en el cuadrado de la derecha. Figura interior, borde exterior, borde interno # CASO 4: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_TREE Primero se ha encontrado el circulo, el contorno exterior del cuadrado de la izquierda y, posteriormente su borde interior. Después luego los de las figuras interiores del cuadrado de la izquierda. Por último hace lo mismo pero en el cuadrado de la derecha. Borde exterior, borde interno, figura interior
Muy buena explicación, estoy detectando las articulaciones del brazo mediante marcas de color para modelar su trayectoria y evaluar los gestos con fines de rehabilitacion y me han ayudado estos videos y tu canal en general, saludos y felicidades.
Muchas gracias Samuel, hice algo similar hace algún tiempo pero en extremidades inferiores jeje :D Gracias por darte el tiempo de escribir, lo aprecio mucho!
For the last opencv version, line 8/9 uses only two variables: contornos, hierarchy = cv2.findContours( threshold, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
Hola, una pregunta, ¿hay manera de dibujar puntos en el contorno y extraer sus coordenadas de dichos puntos? Investigué sobre eso y existe una propiedad que se llama "puntos extremos" pero solo te permite dibujar 4, me interesa dibujar más de 4.
Hola! Algún día podrías realizar una explicación acerca de cómo poder llevar a cabo el contorneado y dibujado de los mismo en tiempo real (en tiempo real o cámara). Mil mil gracias!!!
Hola Mariel, puedes ver algunos videos en el que aplico los contornos en videostreaming: ua-cam.com/video/kcmJQzu_q6M/v-deo.html y este omes-va.com/deteccion-de-colores2/
Hola , muy buen tutorial. Tengo una duda : lo que pasa es que estoy guardado el contorno de una imagen en dos arreglos x, y , para ubicar luego los puntos y gratificarlos con plot, pero resulta que el contorno sale girado hacia un lado o incluso al revés ¿sabes en qué orden o cómo da el contorno la función que utilizas para que así al guardarlo en otra variable y gratificarlo quede derecho? gracias
Hola, una consulta, con OpenCV podría dibujar el contorno del cuerpo humano? ya que la idea es que se haga seguimiento del cuerpo y ver la colisión con otros objetos (objetos 3d impresos por pantalla). Ojala me ayudes con mi duda y muchas gracias por tus videos
Hola Totus Programing muchas gracias. :) Dependería del ambiente donde funcionaria el programa. Podrías darle un vistazo a estos videos: - ua-cam.com/video/kcmJQzu_q6M/v-deo.html - ua-cam.com/video/fR7IQQJJAnk/v-deo.html - ua-cam.com/video/w-Z-l-BDsXg/v-deo.html
@@OMES-va sería desde una página web, aún nose si lo lograré, pero lo intentaré 😅 estoy introduciéndome en el mundo de Python 🤭 pero con tus vídeos seguro serán un gran aporte muchas gracias 🥰❤
Hola Simon, si quisieras únicamente trabajar con el área que rodea los contornos, podrías usar c2.bitwise_and(imagen, imagen, mask=mask), allí obtendrás una imagen, en donde se muestre en color el área que has determinado, y de color negro el fondo. Muchas gracias, espero que te hayan ayudado los videos!
Hola Gaby Gracias por tus vídeos Me encuentro realizando un algoritmo en Raspberry pi 3 y opencv en Python Para no videntes Para que se puedan desplazar por las calles Es decir que el algoritmo les tiene que avisar si hay vehículos cerca Calles banquetas etc Ya casi lo termino Talves me puedas ayudar Gracias
@@Stacio6 hola cómo estás? Podrías usar mapas de disparidad para ello necesitarías de 2 cámaras y con los mapas podrías darte cuenta cual es el objeto u objetos más próximos.
Hola mira te explico estoy realizando mi tesis para reconocimiento de objetos y contarlos en este caso vehículos en donde pasan por un túnel de 1 acceso entonces quiero utilizar las cámaras lados norte y sur para detectar presencias de objetos contar cuantos objetos los sume y los totalice y esa información enviarlos a la otra cámara del sector sur para que compare y active semáforo verde desde un extremo y rojo en el otro para los accesos pero he visto muchos tutoriales y vídeos pero ninguno llega a algo cercano o mas bien concreto todos manejan distintas versiones de los programas y las compatibilidades han sido re-jodidas....y lamentablemente tengo poco tiempo para hacerlo y ya me he desvelado mucho...y como trabajo en el día es cada vez mas difícil realizarlo....si me puedes orientar por favor solo necesito algo super simple encender alumbrado con movimiento al detectar un objeto en la cámara y aparezca solo el contorno o varios contornos...
Si quisieras hacer algo simple podrías usar resta de imágenes. Allí solo cuando están en movimiento se detectarian los autos. Sin embargo ese método se complica por los cambios de iluminación. Pero depende de las condiciones que hayas plateado. Si quisieras podrías plantear esto de la resta, previo aplicar ecualización de imágen para atenuar la iluminación. Por otro lado si decides aplicar detección de objetos junto con machine learning deberás tomar muchas imagenes de los autos en el entorno donde estes trabajando, y deberías emplear alguna técnica de clasificación para diferenciar autos del fondo, ese es un proceso un poco más complicado.
Hola que tal, antes que nada, excelente explicación y vídeo :D Tengo un problema, en una imagen tengo muchos contornos, muchas figuras, ¿Cómo puedo seleccionar una en específico para poder procesar ese contorno ignorando todos los demás?
Hola Rafa, podrías descartar los contornos según su área, para ello puedes usar cv2.contourArea. Existen otras formas, como en base a la forma o al color por ejemplo. O incluso podrías usar todos estos aspectos para diferenciar un contorno de otro. Te dejo algunos de mis videos en caso de que te puedan ayudar con la duda: ua-cam.com/video/R82EcsCgnfg/v-deo.html ua-cam.com/video/DwPug0V8pcI/v-deo.html ua-cam.com/video/wBPIAGNTFzY/v-deo.html :)
hola gaby podrias hacer un ciclo for el cual abra 10 imagenes de una carpeta y al resultado se le aplique la deteccion de contornos y este resultado se guarde en una carpeta por favor me ayudaria muchisimo
Tengo un problema cuando ejecuto el script, me muestra esto: line 7, in img,contornos,hierarchy=cv2.findContours(th,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) ValueError: not enough values to unpack (expected 3, got 2). Como puedo solucionar este problema
Hola Normi, debe ser por la versión de OpenCV que posees, yo lo hice con OpenCV3, me supongo que debes tener OpenCV4, pero no te preocupes, solo debes omitir 'img'. De este modo: contornos,hierarchy=cv2.findContours(th,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
Necesitas discriminar el área de tu interés de alguna manera, con umbralización, detección de bordes, o basándose en el color del objeto que necesites, de tal modo que el objeto que quiera encerrar quede en blanco y el resto en negro.
Hola Alexander, sería el mismo procedimiento solo que lo tendrías que aplicar a un fotograma. En este video por ejemplo uso cv2.findContours en un video: ua-cam.com/video/kcmJQzu_q6M/v-deo.html
Hola pr0 Saksa, tendrías que aplicar alguna técnica para determinarlo. Te dejo por ejemplo este video: ua-cam.com/video/8rg_qi8mjjk/v-deo.html en donde determinamos la placa de un auto.
@@OMES-va ¡Muchas gracias por responder! Ok... mira (es la primer vez que utilizo subline, python) por lo general siempre ha sido matlab. El error es en la línea 4 en el imshow File "ubicación del archivo", línea 4, in (Pensé que era por la ubicación, entonces no coloqué el nombre de la imagen en imread si no, la ubicacion como tal. Y cuando lo hago así, me aparece el error arriba. (Sí, esta en la misma carpeta la imagen en jpg) Py 3.8 Cv 4.2
@@OMES-va Mi versión de OpenCV es la 3.4.8. El código no me arroja errores, pero tampoco sé si realmente se está detectando correctamente algún contorno. Al final cuando intento mostrar la imagen no me aparece nada dibujado.
@@OMES-va osea por ejemplo supongamos que tienes 4 rectángulos en una imagen un rectángulo verde, otro rojo, otro azul y otro amarillo, o bien podrían ser del mismo color, lo que quiero hacer es detectar cada rectángulo y recortarlos y ponerlos cada una en una imágenes por separado, osea apartir de la imagen original obtener 4 imágenes nuevas, me entiendes ahora?
@@SuperDarku podrias usar canny para diferenciar los objetos de una imagen. Si hice un video de conteo de objetos a través de canny o detección de bordes. Puedes aplicar eso y luego recortalos de la imagen principal con cv2.boundingRect, guardabdo cada uno con cv2.imwrite
@@OMES-va una última pregunta, que versión de Python y opencv está usando actualmente? Tengo algunos problemas y creo que es por la versión que tengo instalada
Hola Gaby estoy siguiendo este tutorial pero me esta dando un error a la hora de correrlo, en la linea donde va la parte de findContours. Me sale este error y no le consigo el problema es exactamente como lo escribiste y esta en la teoria. import cv2 as cv import numpy as np imagen = cv.imread('Foto.png') gray = cv.cvtColor(imagen, cv.COLOR_BGR2GRAY) _,th = cv.threshold(gray, 100, 255, cv.THRESH_BINARY) img,contornos,hierarchy = cv.findContours(th, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE) cv.drawContours(imagen, contornos, -1, (0,255,0), 3) cv.imshow('th', th) cv.imshow('imagen', imagen) cv.imshow('img', img) cv.waitKey(0) cv.destroyAllWindows() Este es el error que me da: img,contornos,hierarchy = cv.findContours(th, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE) ValueError: not enough values to unpack (expected 3, got 2)
Hola @deinyspulido4902, esto es por la versión de OpenCV que posees. Pero no te preocupes, puedes resolverlo con esto: omes-va.com/error-cv2-findcontours/ :)
hola gaby podrias hacer un ciclo for el cual abra 10 imagenes de una carpeta y al resultado se le aplique la deteccion de contornos y este resultado se guarde en una carpeta por favor me ayudaria muchisimo
¿Quieres el tutorial en texto con su programación?🤔, si la respuesta es SÍ 👌, dale clic: omes-va.com/contornos/
Soy brasileño y no sé nada de programación, sus videos son los únicos que me hacen entender sobre el tema. ¡No puedo encontrar ningún otro tutorial en inglés o portugués, tan bueno como el suyo! Felicitaciones por lo trabajo
Hola Giacomo Bianchi, muito obrigada. Gracias por tus palabras, de verdad que me animan muchísimo. :D
Cuanta dedicación en cada video, me encantan todos, muchas gracias
Muchas gracias Derkerther Black! :D
¡Gracias por tus videos!, creo que no hay tantos tan bien explicados. Dentro de los temas que mas me apasionan son la visión computacional, la inteligencia artificial y la realidad virtual.
Muchas gracias Arturo. :)
Buen video.
Tan solo unas apreciaciones que se pueden ver si mantenemos el ciclo for con los distintos métodos:
# CASO 1: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_LIST:
Primero se ha encontrado el circulo, luego los de las figuras interiores del cuadrado de la izquierda.
Después el contorno interior del cuadrado de la izquierda y, posteriormente su borde exterior.
Por último hace lo mismo pero en el cuadrado de la derecha. Figura interior, borde interior, borde externo
# CASO 2: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_EXTERNAL:
Primero dibuja el circulo, luego el cuadrado externo izquierdo y, finalmente el cuadrado externo derecho
# CASO 3: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_CCOMP
Primero se ha encontrado el circulo, luego los de las figuras interiores del cuadrado de la izquierda.
Después el contorno exterior del cuadrado de la izquierda y, posteriormente su borde interior.
Por último hace lo mismo pero en el cuadrado de la derecha. Figura interior, borde exterior, borde interno
# CASO 4: cv2.CHAIN_APPROX_SIMPLE Y cv2.RETR_TREE
Primero se ha encontrado el circulo, el contorno exterior del cuadrado de la izquierda y, posteriormente su borde interior. Después luego los de las figuras interiores del cuadrado de la izquierda. Por último hace lo mismo pero en el cuadrado de la derecha. Borde exterior, borde interno, figura interior
Muy buena explicación, estoy detectando las articulaciones del brazo mediante marcas de color para modelar su trayectoria y evaluar los gestos con fines de rehabilitacion y me han ayudado estos videos y tu canal en general, saludos y felicidades.
Muchas gracias Samuel, hice algo similar hace algún tiempo pero en extremidades inferiores jeje :D Gracias por darte el tiempo de escribir, lo aprecio mucho!
@@OMES-va Gracias a ti
For the last opencv version, line 8/9 uses only two variables: contornos, hierarchy = cv2.findContours(
threshold, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
Que genia, me estas salvando el cuatrimestre XD !!!
jeje, muchas gracias Victor.
Estoy comenzando a aprender Python; estoy interesado en el área de procesamiento de imágenes. Gracias por tus videos.
Me alegra mucho saber eso! Qué bonito saber que muchas personas nos interesamos por esta área :D Muchos éxitos!
Excelente explicación!!!!
Muchas gracias Deiner!
Que interesante. Excelente tu contenido, me ha sido muy útil.
Muchas gracias Cristian :D me alegra mucho que te haya servido el contenido.
Muy buen tutorial muy bien explicado, excelente vídeo me suscribo
Muchas gracias Carlos 😊 bienvenido!
Hola, una pregunta, ¿hay manera de dibujar puntos en el contorno y extraer sus coordenadas de dichos puntos?
Investigué sobre eso y existe una propiedad que se llama "puntos extremos" pero solo te permite dibujar 4, me interesa dibujar más de 4.
Hola. Una súper pregunta, encontraste cómo hacerlo?
@@alejandragalicia2813 X2. Encontraste cómo hacerlo?
Existe una manera de describirlo en una funcion o operacion matematica la funcion de CHAIN_APPRX_NONE y CHAIN_APPROX_SIMPLE?
Geniaaaa
Hola! Algún día podrías realizar una explicación acerca de cómo poder llevar a cabo el contorneado y dibujado de los mismo en tiempo real (en tiempo real o cámara). Mil mil gracias!!!
Hola Mariel, puedes ver algunos videos en el que aplico los contornos en videostreaming: ua-cam.com/video/kcmJQzu_q6M/v-deo.html y este omes-va.com/deteccion-de-colores2/
Bueno el vid! deje el like, Una pregunta ppor favor: cual seria EL CODIGO para grabar/obtener los puntos para despues dibujarlos en AUTOCAD?
Muchas gracias por tus videos
como puedo implementaar la tecnica de contornos, pero para la deteccion y conteo de ojos de una imagen?
Hola , muy buen tutorial. Tengo una duda : lo que pasa es que estoy guardado el contorno de una imagen en dos arreglos x, y , para ubicar luego los puntos y gratificarlos con plot, pero resulta que el contorno sale girado hacia un lado o incluso al revés ¿sabes en qué orden o cómo da el contorno la función que utilizas para que así al guardarlo en otra variable y gratificarlo quede derecho? gracias
Hola Sandra, tal vez sean las coordendas. En el caso de OpenCV toma como origen la parte superior izquierda, a la derecha sería 'x' y abajo 'y'.
Hola, una consulta, con OpenCV podría dibujar el contorno del cuerpo humano? ya que la idea es que se haga seguimiento del cuerpo y ver la colisión con otros objetos (objetos 3d impresos por pantalla). Ojala me ayudes con mi duda y muchas gracias por tus videos
Hola Totus Programing muchas gracias. :) Dependería del ambiente donde funcionaria el programa. Podrías darle un vistazo a estos videos:
- ua-cam.com/video/kcmJQzu_q6M/v-deo.html
- ua-cam.com/video/fR7IQQJJAnk/v-deo.html
- ua-cam.com/video/w-Z-l-BDsXg/v-deo.html
@@OMES-va sería desde una página web, aún nose si lo lograré, pero lo intentaré 😅 estoy introduciéndome en el mundo de Python 🤭 pero con tus vídeos seguro serán un gran aporte muchas gracias 🥰❤
Hola Gaby ! Abra algún método el cual, en base a los contornos, pueda segmentar una imagen en varias partes? Muy explicativos tus videos sigue así!
Hola Simon, si quisieras únicamente trabajar con el área que rodea los contornos, podrías usar c2.bitwise_and(imagen, imagen, mask=mask), allí obtendrás una imagen, en donde se muestre en color el área que has determinado, y de color negro el fondo. Muchas gracias, espero que te hayan ayudado los videos!
Hola Gaby
Gracias por tus vídeos
Me encuentro realizando un algoritmo en Raspberry pi 3 y opencv en Python
Para no videntes
Para que se puedan desplazar por las calles
Es decir que el algoritmo les tiene que avisar si hay vehículos cerca
Calles banquetas etc
Ya casi lo termino
Talves me puedas ayudar
Gracias
@@Stacio6 hola cómo estás? Podrías usar mapas de disparidad para ello necesitarías de 2 cámaras y con los mapas podrías darte cuenta cual es el objeto u objetos más próximos.
Hola mira te explico estoy realizando mi tesis para reconocimiento de objetos y contarlos en este caso vehículos en donde pasan por un túnel de 1 acceso entonces quiero utilizar las cámaras lados norte y sur para detectar presencias de objetos contar cuantos objetos los sume y los totalice y esa información enviarlos a la otra cámara del sector sur para que compare y active semáforo verde desde un extremo y rojo en el otro para los accesos pero he visto muchos tutoriales y vídeos pero ninguno llega a algo cercano o mas bien concreto todos manejan distintas versiones de los programas y las compatibilidades han sido re-jodidas....y lamentablemente tengo poco tiempo para hacerlo y ya me he desvelado mucho...y como trabajo en el día es cada vez mas difícil realizarlo....si me puedes orientar por favor solo necesito algo super simple encender alumbrado con movimiento al detectar un objeto en la cámara y aparezca solo el contorno o varios contornos...
Si quisieras hacer algo simple podrías usar resta de imágenes. Allí solo cuando están en movimiento se detectarian los autos. Sin embargo ese método se complica por los cambios de iluminación. Pero depende de las condiciones que hayas plateado. Si quisieras podrías plantear esto de la resta, previo aplicar ecualización de imágen para atenuar la iluminación.
Por otro lado si decides aplicar detección de objetos junto con machine learning deberás tomar muchas imagenes de los autos en el entorno donde estes trabajando, y deberías emplear alguna técnica de clasificación para diferenciar autos del fondo, ese es un proceso un poco más complicado.
Hola que tal, antes que nada, excelente explicación y vídeo :D
Tengo un problema, en una imagen tengo muchos contornos, muchas figuras, ¿Cómo puedo seleccionar una en específico para poder procesar ese contorno ignorando todos los demás?
Hola Rafa, podrías descartar los contornos según su área, para ello puedes usar cv2.contourArea. Existen otras formas, como en base a la forma o al color por ejemplo. O incluso podrías usar todos estos aspectos para diferenciar un contorno de otro. Te dejo algunos de mis videos en caso de que te puedan ayudar con la duda: ua-cam.com/video/R82EcsCgnfg/v-deo.html ua-cam.com/video/DwPug0V8pcI/v-deo.html ua-cam.com/video/wBPIAGNTFzY/v-deo.html :)
hola gaby podrias hacer un ciclo for el cual abra 10 imagenes de una carpeta y al resultado se le aplique la deteccion de contornos y este resultado se guarde en una carpeta por favor me ayudaria muchisimo
Tengo un problema cuando ejecuto el script, me muestra esto:
line 7, in
img,contornos,hierarchy=cv2.findContours(th,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2). Como puedo solucionar este problema
Hola Normi, debe ser por la versión de OpenCV que posees, yo lo hice con OpenCV3, me supongo que debes tener OpenCV4, pero no te preocupes, solo debes omitir 'img'. De este modo:
contornos,hierarchy=cv2.findContours(th,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
@@OMES-va Gracias lo he logrado solucionar
Me alegra mucho Normi :D
@@OMES-va Disculpa como podría instalarme OpenCV3?
Hola, esto es para imagenes con fondo negro, si tenes q hacer con fondo de varios colores o fondos variables?
Necesitas discriminar el área de tu interés de alguna manera, con umbralización, detección de bordes, o basándose en el color del objeto que necesites, de tal modo que el objeto que quiera encerrar quede en blanco y el resto en negro.
hola, si quiero identificar el contorno de un objeto especifico pero en un video como lo puedo hacer? muchas gracias por el video.
Hola Alexander, sería el mismo procedimiento solo que lo tendrías que aplicar a un fotograma. En este video por ejemplo uso cv2.findContours en un video: ua-cam.com/video/kcmJQzu_q6M/v-deo.html
@@OMES-va gracias. Ya lo voy a ver.
Pero como hago si deseo capturar solamente los contornos de las llantas de un auto por ejemplo?
Hola pr0 Saksa, tendrías que aplicar alguna técnica para determinarlo. Te dejo por ejemplo este video: ua-cam.com/video/8rg_qi8mjjk/v-deo.html en donde determinamos la placa de un auto.
Holaaa, ¿Cómo podría obtener el área que se encuentra dentro del contorno?
Hola Oscar, puedes usar cv2.contourArea.
@@OMES-va oh, ok, me daría la cantidad de píxeles dentro del contorno, cierto?
excelente, no tendras un tutorial de como hacer un efecto painting o oil para imagenes
Hola Jose, por ahora no cuento con un tutorial así. Saludos!
@@OMES-va ok muchas gracias por responder
Hola, ¿me podrías ayudar? no me compila los cog en subline. solo me aparece error. (con las imágenes)
Hola Duvan, ¿cuál es el error?
@@OMES-va ¡Muchas gracias por responder!
Ok... mira (es la primer vez que utilizo subline, python) por lo general siempre ha sido matlab.
El error es en la línea 4 en el imshow
File "ubicación del archivo", línea 4, in
(Pensé que era por la ubicación, entonces no coloqué el nombre de la imagen en imread si no, la ubicacion como tal. Y cuando lo hago así, me aparece el error arriba.
(Sí, esta en la misma carpeta la imagen en jpg)
Py 3.8
Cv 4.2
¿Seguiste tal vez este tutorial? ua-cam.com/video/FqZkSXJfcic/v-deo.html
@@OMES-va sí, seguí ese mismo. ¿como ejecutas tu código? ¿por consola?
@@duvancaceres6368 por el cmd o por ctrl+B. Si puedes pon el código y el error que obtienes 🙂
Hola! Tus videos me han sido una gran guía, pero estoy aplicando este procedimiento y cuando grafico no me dibuj los contornos ¿Podrías ayudarme?
Hola Natalia, muchas gracias :) Claro dime que obtienes?
@@OMES-va yo estoy escribiendo la función drawContours con sus parámetros pero no me retorna en la imagen los contornos.
@@nataliamolina1767 y te salta algún error? Qué versión de OpenCv tienes instalado?
@@OMES-va Mi versión de OpenCV es la 3.4.8. El código no me arroja errores, pero tampoco sé si realmente se está detectando correctamente algún contorno. Al final cuando intento mostrar la imagen no me aparece nada dibujado.
Podrias hacer uno de formas, para detectar y cortar?
Hola SuperDarku, de figuras geométricas?? y como contar o cortar? a eso te refieres?
@@OMES-va osea por ejemplo supongamos que tienes 4 rectángulos en una imagen un rectángulo verde, otro rojo, otro azul y otro amarillo, o bien podrían ser del mismo color, lo que quiero hacer es detectar cada rectángulo y recortarlos y ponerlos cada una en una imágenes por separado, osea apartir de la imagen original obtener 4 imágenes nuevas, me entiendes ahora?
@@SuperDarku podrias usar canny para diferenciar los objetos de una imagen. Si hice un video de conteo de objetos a través de canny o detección de bordes. Puedes aplicar eso y luego recortalos de la imagen principal con cv2.boundingRect, guardabdo cada uno con cv2.imwrite
@@OMES-va lo voy a intentar, muchas gracias señorita
@@OMES-va una última pregunta, que versión de Python y opencv está usando actualmente? Tengo algunos problemas y creo que es por la versión que tengo instalada
excelente
por qué no haces un programa que detecte a gente que usa cubrebocas y gente que no y que se ponga en rojo cuando no lo usen
Hola Gaby estoy siguiendo este tutorial pero me esta dando un error a la hora de correrlo, en la linea donde va la parte de findContours. Me sale este error y no le consigo el problema es exactamente como lo escribiste y esta en la teoria.
import cv2 as cv
import numpy as np
imagen = cv.imread('Foto.png')
gray = cv.cvtColor(imagen, cv.COLOR_BGR2GRAY)
_,th = cv.threshold(gray, 100, 255, cv.THRESH_BINARY)
img,contornos,hierarchy = cv.findContours(th, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
cv.drawContours(imagen, contornos, -1, (0,255,0), 3)
cv.imshow('th', th)
cv.imshow('imagen', imagen)
cv.imshow('img', img)
cv.waitKey(0)
cv.destroyAllWindows()
Este es el error que me da:
img,contornos,hierarchy = cv.findContours(th, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)
Hola @deinyspulido4902, esto es por la versión de OpenCV que posees. Pero no te preocupes, puedes resolverlo con esto: omes-va.com/error-cv2-findcontours/ :)
hola gaby podrias hacer un ciclo for el cual abra 10 imagenes de una carpeta y al resultado se le aplique la deteccion de contornos y este resultado se guarde en una carpeta por favor me ayudaria muchisimo