ฉันมีเอกสารเก่าที่สแกนแล้วและฉันต้องการแปลงเป็นขาวดำ เนื้อหาควรเป็นสีดำเสมอและพื้นหลังเป็นสีขาว:
ฉันใช้ Photoshop
ฉันมีเอกสารเก่าที่สแกนแล้วและฉันต้องการแปลงเป็นขาวดำ เนื้อหาควรเป็นสีดำเสมอและพื้นหลังเป็นสีขาว:
ฉันใช้ Photoshop
คำตอบ:
หากคุณสามารถควบคุมการสแกนหรือสามารถสแกนซ้ำได้ให้เพิ่มการตั้งค่าความเปรียบต่างในการสแกนและตั้งจุดดำที่ข้อความที่มืดที่สุดที่คุณสามารถหาได้ นั่นจะทำให้ขั้นตอนด้านล่างง่ายขึ้น ถ้าไม่อ่านต่อ ...
นี่คือส่วนหนึ่งของการสแกนเอกสารเก่าที่ค่อนข้างปกติ:
รายละเอียดจะแตกต่างกันไปขึ้นอยู่กับเอกสาร (ซึ่งมีความแตกต่างค่อนข้างสูงกว่าตัวอย่างของคุณ) แต่เค้าร่างแบบกว้างจะเหมือนกัน
ขอให้สังเกตว่าแถบเลื่อนสีเหลืองอยู่ทางด้านขวาทำให้พื้นหลังสีเหลืองจางลง ฉันสามารถทำให้ข้อความมืดลงได้เพียงเล็กน้อยเท่านั้น
สิ่งนี้ทำให้คุณได้ 95% ของวิธีการที่นั่น โดยทั่วไปแล้วเอกสารที่สแกนจะมีฮิสโตแกรมที่มีก้อนขนาดใหญ่อยู่ทางด้านขวา (กระดาษ) และมีขนาดเล็กลงทางด้านซ้าย (ข้อความ) คุณจะต้องทดสอบกับเอกสารของคุณเพื่อค้นหาการตั้งค่าที่เหมาะสม
จากจุดนี้คุณสามารถทำสำเนารูปภาพให้แบนที่ซ้ำกันและใช้เครื่องมือตกแต่ง Photoshop ทั่วไปของคุณเพื่อล้างส่วนที่เหลือ
คุณพูดถึง Photoshop แต่ในกรณีที่คุณสนใจนอกจากนี้ยังมีปลั๊กอิน GIMPที่ทำความสะอาดระดับสีเทาขั้นสูงและการประมวลผล:
มันเรียกว่าNuvola Toolsและส่วนใหญ่เน้นงานสแกน แต่คุณอาจต้องการลองดู
ก่อน:
หลังจาก:
ที่มา: Registry ปลั๊กอิน GIMP
ด้วย GIMP:
ฉันลองใช้วิธีการต่าง ๆ ที่กล่าวถึงรวมถึง ปลั๊กอินFineThreshold http://www.mehdiplugins.com/english/finethreshold.htmฟรีฟรี ปลั๊กอินนี้ให้ผลลัพธ์ที่ดีอย่างรวดเร็วหากเอกสารมีแสงที่เป็นเนื้อเดียวกันและกระดาษเองก็มีคุณภาพเหมือนกัน อย่างไรก็ตามนี่ไม่ใช่กรณีของฉัน ฉันพบว่าด้านบนของเอกสารทุกฉบับมีน้ำหนักเบากว่าด้านล่าง ดังนั้นทุกวิธีและการตั้งค่าบางส่วนทำงานได้ดีสำหรับส่วนของทุกหน้าเท่านั้นและไม่ใช่วิธีที่เหลือ
ในที่สุดผมพบว่าผล"แบบไดนามิกกำหนดเกณฑ์ขั้นต่ำ"ซึ่งเป็นส่วนหนึ่งของZoner Photo Studio V15 เวอร์ชั่น eval ของมันฟรีสำหรับบางช่วงเวลาฉันเดา ดูเหมือนว่าจะชดเชยขีด จำกัด b / w ตามความสว่างของพื้นที่ใกล้เคียง แอปพลิเคชันของมันเป็นกระบวนการแบบขั้นตอนเดียวเท่านั้น สำหรับฉันพารามิเตอร์ "ใหญ่ค่า +14" ทำงานได้ดีมาก ข้าง "ตัวแก้ไข" Zoner ประกอบด้วยส่วนต่อประสาน "ตัวจัดการ" ซึ่งคุณสามารถประมวลผลชุดภาพที่เลือกทั้งหมด ในที่สุดฉันก็สามารถพิมพ์ผลลัพธ์บนเครื่องพิมพ์เลเซอร์ 300 dpi ที่เก่าแก่มากซึ่งมีความเปรียบต่างที่ยอดเยี่ยม
ตอนนี้งานที่เหลืออยู่เพียงอย่างเดียวที่ฉันกำลังมองหาคือCROPอัตโนมัติของทุกภาพในลักษณะที่ชาญฉลาดเพื่อลดระยะขอบที่ไม่จำเป็นออกไป คำแนะนำใด ๆ ยินดีต้อนรับเนื่องจากการครอบตัดด้วยตนเองน่าเบื่อเช่นเดียวกับใช้เวลานาน
มีปลั๊กอินในรีจิสทรีปลั๊กอิน GIMP ที่ทำสิ่งนี้ ตอนนี้มันถูกเก็บถาวรที่นี่
ก่อนหน้านี้ฉันแปลสิ่งนี้เป็น Python และมันเร็วกว่ามาก
นี่คือผลของการประยุกต์ใช้กับภาพในคำถามเดิม:
นี่คือผลของการประยุกต์ใช้กับภาพในคำตอบของอลัน:
อย่างไรก็ตามนี่คือรหัสของปลั๊กอิน:
from __future__ import division
import random
import gimp, gimpfu
pdb = gimp.pdb
sample_count = 100
def set_image_background_to_white(image, drawable):
pdb.gimp_context_push()
pdb.gimp_image_undo_group_start(image)
pdb.gimp_progress_set_text('Correcting background')
if drawable.is_gray:
channel_count = 1
elif drawable.is_rgb:
channel_count = 3
assert not drawable.is_indexed
# get some random points in the image
sum_by_channel = [0]*channel_count
for sample_index in range(sample_count):
px = pdb.gimp_drawable_get_pixel(drawable,
random.randint(0, pdb.gimp_drawable_width (drawable)-1),
random.randint(0, pdb.gimp_drawable_height(drawable)-1))[1]
for i in range(channel_count):
sum_by_channel[i] += px[i]
pdb.gimp_progress_update(sample_index/sample_count)
if drawable.is_gray:
pdb.gimp_levels(drawable, gimpfu.HISTOGRAM_VALUE,
0, sum_by_channel[0]/sample_count,
1.,
0, 255)
elif drawable.is_rgb:
for i in range(channel_count):
pdb.gimp_levels(drawable, 1+i,
0, sum_by_channel[i]/sample_count,
1.,
0, 255)
pdb.gimp_levels(drawable, gimpfu.HISTOGRAM_VALUE,
0, 255,
0.6,
0, 255)
pdb.gimp_image_undo_group_end(image)
pdb.gimp_displays_flush()
pdb.gimp_progress_update(1.)
pdb.gimp_context_pop()
gimpfu.register('set_image_background_to_white', # name
'Set image background to white', # blurb
'No help info yet', # help
'Robert Fleming', # author
'Robert Fleming', # copyright
'2015', # date
'<Image>/Filters/Set Background to White', # menupath
'RGB*, GRAY*', # imagetypes
[], # params
[], # results
set_image_background_to_white, # function
)
gimpfu.main()
เพียงลองใช้ photoshop โหมดสเกลสีเทา