วิธีตัดภาพที่สแกนอัตโนมัติโดยใช้ imagemagick หรือ graphicsmagick


11

ฉันมีภาพสแกนในรูปแบบ * .jpg พวกเขาจะสแกนโดยใช้สแกนเนอร์ A4 ในสีเทาหรือสี หน้าที่สแกนมีขนาดแตกต่างกันมาก - A5 บางอย่าง, A6 บางอย่าง, นามบัตรบางอย่าง ฯลฯ ฝาครอบเครื่องสแกนเป็นสีขาว

ฉันต้องการตัดขอบสีขาวทั้งหมดโดยใช้ imagemagick หรือ graphicsmagick (เครื่องมือเหล่านั้นเพราะฉันต้องการประมวลผลแบบแบตช์ต่อไป) ฉันเข้าใจว่าการสแกนเส้นขอบนั้นไม่ใช่สีขาวที่เพอร์เฟ็กต์และบางครั้งอาจทำให้การตัดแต่งภาพมากหรือน้อยเกินไป อย่างไรก็ตามการใช้พารามิเตอร์การตัดแต่งด้วย fuzz ฉันได้ภาพใหญ่เกินไปเสมอ ตัวอย่างเช่นการใช้ภาพนามบัตรด้านล่าง:

gm.exe convert -crop -fuzz 50% 01-pixelated.jpg 01-pixelated-gm.jpg

สร้างภาพที่ยังไม่ถูกตัดจากด้านขวาและด้านล่าง ผลลัพธ์จะเหมือนกันไม่ว่าฉันจะใส่อะไรในพารามิเตอร์ -fuzz

คุณช่วยทดสอบและแนะนำบรรทัดคำสั่งที่จะทำงานได้หรือไม่?

ป้อนคำอธิบายรูปภาพที่นี่


คุณต้องการตัดขอบข้อความหรือเนื้อหาหรือขอบของกระดาษตามขนาด (A4, A5, A6) หรือไม่? ในตัวอย่างของคุณขอบเขตด้านล่างของการ์ดนั้นไม่สามารถมองเห็นได้เลย - ฉันไม่รู้ว่าคุณจะตรวจจับได้อย่างไร
willus

ฉันต้องการให้มีการตัดแต่งที่ขอบของเนื้อหา
Arek

คำตอบ:


9

ใน ImageMagick ลองคำสั่งนี้:

convert input.jpg -fuzz 80% -trim +repage output.jpg

ฉันทดสอบด้วย ImageMagick 6.4.4 Q16 และเริ่มต้นจากภาพที่คุณเชื่อมโยงฉันได้รับภาพผลลัพธ์นี้:

เอาท์พุต


ชัดเจนมากฉันไม่ตรงกัน -trim กับ -crop ขอบคุณ!
Arek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.