Я не совсем понимаю, что вы пытаетесь сделать, может быть, вы могли бы добавить другое изображение, показывающее ожидаемый результат, пожалуйста?
В то же время вы можете извлечь слой альфа / прозрачности в отдельное изображение, которое вы можете воспроизвести для своего сердца:
convert input.png -alpha extract alpha.png
, а затем объединить обратно в изображение с помощью команды, подобной этой (но где я создаю пурпурный фон вместо использования исходного изображения):
convert -size 800x600 xc:magenta alpha.png -compose copyalpha -composite result.png
Заполните внешний фон голубым, как это, чтобы сохранить его в качестве временного цвета, который мы можем найти позже:
convert alpha.png -fill cyan -draw 'color 0,0 floodfill' a.png
Теперь сделайте все, что не голубым, белым, а затем все, что голубым, верните черному:
convert a.png -fuzz 80% -fill white -opaque black -fuzz 5% -fill black -opaque cyan b.png