python – opencv morphologyEx eliminar color específico

Después de eliminar el fondo de captcha.
La imagen sigue siendo dígitos y ruido.
La línea de ruido es de un solo color: RGB (127,127,127)
Y luego usar el método morfológico.

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2)) self.im = cv2.morphologyEx(self.im, cv2.MORPH_CLOSE, kernel) 

Se quitará alguna parte del dígito.
¿Cómo usar morphologyEx () eliminar solo el color en RGB (127,127,127)?

introduzca la descripción de la imagen aquíintroduzca la descripción de la imagen aquí

Para eliminar el color dentro de un rango particular, debe usar la función cv2.inRange() .

Aquí está el código:

 lower = np.array([126,126,126]) #-- Lower range -- upper = np.array([127,127,127]) #-- Upper range -- mask = cv2.inRange(img, lower, upper) res = cv2.bitwise_and(img, img, mask= mask) #-- Contains pixels having the gray color-- cv2.imshow('Result',res) 

Esto es lo que obtuve por las dos imágenes que tienes:

Imagen 1:

introduzca la descripción de la imagen aquí

Imagen 2:

introduzca la descripción de la imagen aquí

Continúas desde aquí.

Aquí está mi solución.
Tu respuesta es obvia mejor que mi.

  def mop_close(self): def morphological(operator=min): height, width, _ = self.im.shape # create empty image out_im = np.zeros((height,width,3), np.uint8) out_im.fill(255) # fill with white for y in range(height): for x in range(width): try: if self.im[y,x][0] ==127 and self.im[y,x][1] ==127 and self.im[y,x][2] ==127: nlst = neighbours(self.im, y, x) out_im[y, x] = operator(nlst,key = lambda x:np.mean(x)) else: out_im[y,x] = self.im[y,x] except Exception as e: print(e) return out_im def neighbours(pix,y, x): nlst = [] # search pixels around im[y,x] add them to nlst for yy in range(y-1,y+1): for xx in range(x-1,x+1): try: nlst.append(pix[yy, xx]) except: pass return np.array(nlst) def erosion(im): return morphological(min) def dilation(im): return morphological(max) self.im = dilation(self.im) self.im = erosion(self.im) 

resultado final: introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí