Biorąc pod uwagę obraz, który zawiera pewną rzeczywistą zawartość i zwykle niechcianą biel lub czerń lub przezroczystość wokół niego, chciałbym przyciąć lub przyciąć zewnętrzne części za pomocą ImageMagick.
Poniższy obraz został narysowany cyfrowo na komputerze (w kodzie HTML <canvas>
):
Próbowałem następującego polecenia ImageMagick:
$ convert canvas.png -trim +repage canvas_trimmed.png
I działało idealnie:
Właśnie tego chcę. Ale teraz chcę, aby działało to również ze skanowanymi dokumentami, które nie są tak „doskonałe” jak obrazy generowane komputerowo, tj. Mają więcej odcieni „białego” i „czarnego” oraz brak przejrzystości, która byłaby łatwiejsza do wykrycia. Czasami mają nawet czarne paski wokół białego tła papieru, ponieważ obszar skanera jest większy niż papier:
W przypadku tego obrazu wypróbowałem następujące polecenia w podanej kolejności, każda próbowała być bardziej agresywna, ale żadna nie przyniosła żadnych rezultatów - nie widać żadnej różnicy między obrazem oryginalnym a obrazem „przyciętym”, tj. Przycinanie lub kadrowanie w ogóle nie działa:
$ convert scan.jpg -trim +repage scan_trimmed.jpg
$ convert scan.jpg -fuzz 10% -trim +repage scan_trimmed.jpg
$ convert scan.jpg -fuzz 60% -trim +repage scan_trimmed.jpg
$ convert scan.jpg -fuzz 60% -bordercolor white -border 1x1 -trim +repage scan_trimmed.jpg
$ convert scan.jpg -fuzz 60% -bordercolor black -border 1x1 -trim +repage scan_trimmed.jpg
Co ja tu robię źle? W jaki sposób można zmodyfikować polecenie ImageMagick, które niezawodnie przycina obrazy generowane komputerowo, tak samo jak niezawodnie przycina zeskanowane dokumenty o powyższym stylu?