Одним из методов является использование порогового значения цвета для получения двоичной маски, которую можно использовать для выделения нужных областей для сохранения. Как только мы получим эту маску, мы побитово - и для эффективного удаления сердца
После определения порога цвета с HSV нижнего и верхнего диапазона мы получим эту маску
Чтобы удалить сердце, мы инвертируем маску, которая представляет все области изображения, которые мы хотим сохранить, затем побитово - и с входным изображением. Поскольку вы не указали, на что хотите его заменить, я просто закрасил удаленную область белым. Вот реализация с использованием Python и OpenCV
import numpy as np
import cv2
image = cv2.imread('1.jpg')
original = image.copy()
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower = np.array([0, 138, 155])
upper = np.array([179, 255, 255])
mask = cv2.inRange(hsv, lower, upper)
invert = 255 - mask
result = cv2.bitwise_and(original, original, mask=invert)
result[invert==0] = (255,255,255)
cv2.imshow('mask', mask)
cv2.imshow('result', result)
cv2.waitKey()