Verificamos completamente cada noticias en nuestra página web con la meta de enseñarte siempre información con la mayor veracidad y actual.
Solución:
Hay funciones integradas para esto. Quitar fondo
RemoveBackground[img]
Reemplace el fondo con un color diferente:
RemoveAlphaChannel[RemoveBackground[img], Green]
Eso funciona porque la eliminación del fondo se realiza con la ayuda de configurar el canal alfa con máscara:
AlphaChannel[RemoveBackground[img]]
img = ExampleData["TestImage", "House"];
edge = ImageMultiply[EdgeDetect[ImageSubtract[#3, #] & @@ ColorSeparate[img], 4, 0.04],
Image[SparseArray[i_, j_ /; Min[i, j] <= 100 -> 1, ImageDimensions[img]]]]
binary = Binarize[ImageMultiply[ImageSubtract[#3, #] & @@ ColorSeparate[img],
Image[SparseArray[i_, j_ /; Min[i, j] <= 100 -> 1, ImageDimensions[img]]]], 0.12]
sky = Nest[ImageAdd[ImageFilter[Min, ImageFilter[Max, #, 1], 1], edge] &,
ImageFilter[Min, ImageAdd[binary, edge], 1], 2]
ImageAdd[
ImageMultiply[ImageApply[#[[2]], #[[3]], #[[1]] &, img], #],
ImageMultiply[img, ColorNegate[#]]] & /@ sky, sky - edge
$hespacio1,5 cm$
Así es como lo haría:
Obtener la imagen:
img = ExampleData["TestImage", "House"];
Use RegionBinarize para obtener una máscara y luego cierre los agujeros:
backgroundMask = ColorNegate[FillingTransform[Closing[RegionBinarize[img, ColorNegate @ Binarize @ img, 0.25], 5]]];
Elija el color al que se dirigirá en función de lo que ocurre en la máscara:
backgroundColor = RGBColor[Median[DeleteCases[Flatten[ImageData[backgroundMask img], 1], 0., 0., 0.]]];
Realice el reemplazo a través de toda la imagen:
colorReplacedImg = ColorReplace[img, backgroundColor -> Red];
Aritmética para que el repuesto solo se quede dentro de la máscara:
resultImg = colorReplacedImg backgroundMask + ColorNegate[backgroundMask] img
Sección de Reseñas y Valoraciones
Recuerda algo, que tienes la capacidad de glosar tu experiencia si tropezaste tu inconveniente justo a tiempo.