Quiero cambiar los colores de la imagen con python de un rango de color específico a otro color

introduzca la descripción de la imagen aquí

Quiero cambiar las áreas marrones a ROJO (u otro color). Simplemente no sé cómo obtener los rangos para marrón y ponerlos en código python. Sé cómo cambiar un solo color, pero no una gama de colores. ¿Algunas ideas? Gracias

Esto debería darte una idea, está bastante bien comentado:

 #!/usr/local/bin/python3 import cv2 as cv import numpy as np # Load the aerial image and convert to HSV colourspace image = cv.imread("aerial.png") hsv=cv.cvtColor(image,cv.COLOR_BGR2HSV) # Define lower and uppper limits of what we call "brown" brown_lo=np.array([10,0,0]) brown_hi=np.array([20,255,255]) # Mask image to only select browns mask=cv.inRange(hsv,brown_lo,brown_hi) # Change image to red where we found brown image[mask>0]=(0,0,255) cv.imwrite("result.png",image) 

introduzca la descripción de la imagen aquí


¿Cómo determiné los límites para “marrón” ? Localicé un área marrón en la imagen y la recorté para eliminar todo lo demás. Luego lo redimensioné a 1×1 para promediar todos los tonos de marrón en esa área y lo convertí en espacio de colores HSV, imprimí eso y tomé el valor de Hue que era 15 y fui +/- 5 para dar un rango de 10-20. Aumente el rango a 8-22 para seleccionar un rango más amplio de tonos.