Я получил этот код:
$im = new Imagick("test.jpg"); $im->paintTransparentImage($im->getImageBackgroundColor(), 0, 500); $im->setImageFormat('png'); $im->writeImage('finish.png'); 
И это результат (я добавил вручную розовый фон, чтобы увидеть проблемы лучше):
 
 
  Когда я увеличиваю fuzz тогда более белые пиксели исчезают рядом с объектом, но затем более белые пиксели также исчезают внутри объекта. 
Я попробовал одно и то же изображение на веб-сайте, и результат:
 
 
Это довольно хорошо. Кто-нибудь знает, как это сделать?
Если кому-то понадобится исходное изображение для тестирования:
 
 
ОБНОВИТЬ:
  Добавление $im->despeckleimage();  до $im->paintTransparentImage дает лучший результат: 
 
 
Единственное, что нужно сделать, это заполнить небольшие пустые области белыми пикселями. Есть ли способ сделать это?
  Я получил мгновенное решение, используя алгоритм GrabCut .  Я использовал OpenCV 3 с python, чтобы получить желаемый результат.  К сожалению, я не знаю php и не знаю, как это imagik . 
КОД:
 import numpy as np import cv2 img = cv2.imread('Dress.jpg',1) cv2..imshow('Original image',img) mask = np.zeros(img.shape[:2],np.uint8) bgdModel = np.zeros((1,65),np.float64) fgdModel = np.zeros((1,65),np.float64) rect = (60,20,325,503) cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT) mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8') nimg = img*mask2[:,:,np.newaxis] cv2.imshow("Extracted image",nimg) cv2.waitKey() cv2.destroyAllWindows() 
  Сначала я создал черный фон, используя переменную mask . 
Это то, что я получил.
 
 
Посетите ЭТУ СТРАНИЦУ для получения подробной информации об этом алгоритме и используемых параметрах. Вы также можете использовать это для маскировки на цветном фоне.
  Я верю, то же самое можно попробовать с помощью imagik .  Надеюсь это поможет 🙂 
РЕДАКТИРОВАТЬ:
Это в ответ на редактирование, сделанное вами на вопрос.
Следующее было изображение, загруженное вами:
 
 
Я применил порог и получил следующее изображение:
 
 
Теперь я выполнил операцию «морфологическое закрытие» и получил следующее:
 
 
Наконец, я замаскировал изображение выше с исходным изображением, которое вы загрузили в начале, чтобы получить это: