Python - Eliminar contornos pequeños mediante area

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Eliminar contornos pequeños mediante area

Publicado por sergio (1 intervención) el 21/07/2020 23:16:27
Hola, Quiero eliminar contornos después de hacer el filtrado de imágenes debido que aun obtengo ruido, eliminar los contornos con áreas pequeñas, al crear una lista con el área de los contornos todo esta perfecto,
pero al usar un while y recorrer la lista para eliminar las áreas que no cumplan con la condicion if dentro del while la
posicion del vector jamas cambia de la posicion cero(0), queda un bucle infinito, adjunto el codigo la llamada de las funciones y el uso de ellas son para filtrar la imagen,hallar contornos,dibujar y mostrar no subo la parte de las funciones estan en otro scrip, el error esta donde intento eliminar los elementos de la lista de contornos, dentro de el while.

Nota: al momento de subir la imagen me surgio otro problema pero sigo sin solucionarlo.
CODIGO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
import cv2
import matplotlib.pyplot as plt
import contorno as cn
 
imagen=cv2.imread('pz3.jpg')
_,imgray,contornos=cn.contorno_filtro(imagen)
imagen=cn.translacion_imagen(imagen)
colorContornos=(255,255,0)
cnt=-1
grosor=3
imagen=cn.dibujar_contornos(imagen,contornos,cnt,colorContornos,grosor)
area=[]
posicion=0
for i in range(len(contornos)):
 
     ---area.append(cv2.contourArea(contornos[i]))
 
 
while posicion<len(area):
      -if area[posicion]<=3:
         ---contornos.pop(posicion)
      -else:
         ---posicion=posicion+1
cv2.imshow('imagen contornos',imagen)
cv2.waitKey(0)
cv2.destroyAllWindows()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder