Wie Sie programmgesteuert entfernen, den hintergrund eines Bildes machen Sie transparent, in ruby?
Habe ich ein paar Bilder der Produkte und die würde ich gerne entfernen, den hintergrund eines jeden programmgesteuert in ruby. Hier sind einige Beispiel-Bilder ich legte auf imgur.
Werde ich ein Beispiel setzen hier nur, damit Sie sehen können, aber ich wollte nicht den post ein paar Bilder. Dies ist die einfachste von allen. Es hat nur einen weißen hintergrund, aber einige Produkte haben mehr komplexe Hintergründe. Ich weiß, sowas auf dieses Bild wahrscheinlich nicht zur Arbeit zu gehen, so würde ich mag, um das herauszufinden und richtig scheitern, indem Sie nicht wirklich den hintergrund zu entfernen und nur Benachrichtigen mich irgendwie.
Ich bin mit ruby, ruby on rails 3 und carrierwave da mein upload-handler.
Ist das überhaupt möglich oder bin ich nur wirklich entfernen zu können, weiß Hintergründe?
- Wenn das beabsichtigte Ergebnis dieser Frage ist eine Akademische Diskussion über heuristische Farbe Analyse, empfehle ich die Antworten unten. Wenn es ist wie bekommt man diesen job zu erledigen? Schauen Sie sich die SaaS-Anbieter Imagga (imagga.com/api/docs/smart-cropping-collage-slicing.html) Sie bieten exakt diese Funktionalität.
- Google auch "Background Burner", die bietet eine JSON-API zum entfernen von Bild-Hintergründen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für das entfernen von einem weißen hintergrund aus Bildern, folgenden ist ein bash-Skript mit imagemagick :
War ich mit einem problem konfrontiert, das entfernen von weißen Rand-Pixel des resultierenden Bildes. Untergräbt die binäre Maske und das rasieren der restlichen Pixel löst das problem.
Quelle : konvertieren von weiß zu transparent
Werfen Sie einen Blick auf http://www.imagemagick.org/Usage/masking/#bg_remove
Kann man wohl ziemlich gut tun, mit einfarbigen Hintergründen, aber nicht-einfarbige Hintergründe (wie in dem Bild, das Sie mit) sind ziemlich schwierig, und ich bezweifle, dass Sie werde in der Lage sein zu kommen mit einer einzigen Methode, die für alle Bilder.
ImageMagick ist die wahrscheinlichste Lösung hier (vielleicht mit der mini-Magie Juwel für Schienen), aber wie Sie vorschlagen, es ist unwahrscheinlich, dass Sie ll haben ein gutes Ergebnis, in einigen Fällen. Einfach drehen alle weißen Pixel in transparent wird höchstwahrscheinlich verlassen ausgefranste Ränder werden ganz offensichtlich auf einem nicht-weißen hintergrund. Aber es gibt eine erstaunliche Anzahl von Optionen, die Ihnen eine Menge für die Art von Kontrolle, die Sie haben könnten, in PhotoShop oder anderen -- Sie erstellen eine Maske, die findet den Umriss der Form innerhalb einer bestimmten Toleranz von Farbton, Farbe oder dergleichen, als eine änderung alle übereinstimmenden Pixel in transparent. Ich denke, dass wirst du auch ändern müssen, um PNG-format, da ich nicht glaube, JPEG unterstützt alpha-Transparenz.
CarrierWave ist das richtige Werkzeug für diese Art der Verarbeitung-Sie können verwenden Sie Ihre "Versionen" Möglichkeiten zum speichern der original-Datei und ein paar automatisierte versuche mit unterschiedlichen Parametern (speichern verschiedener Dateien, ohne dabei das original).
http://www.imagemagick.org/Usage/masking/#two_background , ist das vielleicht ein Anfang.
Vorausgesetzt, du meinst das batch-Prozesses eine Reihe nicht zusammenhängender Dateien. Nach meinem Verständnis können Sie nicht so den hintergrund zu entfernen (durch ziehen einer matte) ist ein stark underconstrained problem und erfordert nicht unbedingt die Benutzer-Eingabe. Eine Konstante Hintergrundfarbe wie eine blue oder green screen wird Euch frei zu tun einen ziemlich guten job mit kostenlosen Programmen wie gimp, aber nichts tun können, einen tollen job, es sei denn, Sie wollen Lesen bleeding edge wissenschaftlichen Zeitschriften auf einen zum Beispiel
Poisson Matting
http://research.microsoft.com/apps/pubs/default.aspx?id=69117
ODER
Einer geschlossenen form Lösung zur natürlichen image matting
http://www.wisdom.weizmann.ac.il/~levina/papers/Matting-Levin-Lischinski-Weiss-CVPR06.pdf
Später hat matlab-code zur Verfügung gestellt für Akademische Zwecke. Aber diese sind alle ernsthaften zahlenakrobaten und können alle Ihre system-Ressourcen auf größeren Dateien, wie festgestellt werden kann, von der Testversion pullmatt Anwendung von http://PixelFeather.com/download. Die übrigens nicht den besten job für das Natürliche image-problem von proprietärer software, einschließlich photoshop.